"use client"; import { useEffect } from "react"; import { httpGetInterceptor } from "@/service/http-config/http-interceptor-service"; import { useWorkflowModal } from "@/components/modals/WorkflowModalProvider"; import { getInfoProfile } from "@/service/auth"; interface UserInfo { id: number; username: string; email: string; fullname: string; address: string; phoneNumber: string; workType?: string; genderType?: string; identityType?: string; identityNumber?: string; dateOfBirth?: string; lastEducation?: string; keycloakId: string; userRoleId: number; userLevelId: number; userLevelGroup: string; statusId: number; createdById?: number; profilePicturePath?: string; isActive: boolean; createdAt: string; updatedAt: string; approvalWorkflowInfo: { hasWorkflowSetup: boolean; defaultWorkflowId?: number; defaultWorkflowName?: string; requiresApproval?: boolean; autoPublishArticles?: boolean; isApprovalActive?: boolean; }; } interface ApiResponse { success: boolean; code: number; messages: string[]; data: UserInfo; } export function useWorkflowStatusCheck() { const { showWorkflowModal } = useWorkflowModal(); const checkWorkflowStatus = async () => { try { const response = await getInfoProfile(); console.log("Response approvalWorkflowInfo: ", response); if (response?.data?.data && response?.data?.data?.approvalWorkflowInfo) { const workflowInfo = response.data.data.approvalWorkflowInfo; // Show modal if workflow is not setup if (!workflowInfo.hasWorkflowSetup) { showWorkflowModal(workflowInfo); } } } catch (error) { console.error("Error checking workflow status:", error); } }; return { checkWorkflowStatus }; } // Hook untuk auto-check saat component mount export function useAutoWorkflowCheck() { const { checkWorkflowStatus } = useWorkflowStatusCheck(); useEffect(() => { // Check workflow status when component mounts checkWorkflowStatus(); }, [checkWorkflowStatus]); }