diff --git a/app/dashboard/layout.tsx b/app/dashboard/layout.tsx index 559e8a5..69c528e 100644 --- a/app/dashboard/layout.tsx +++ b/app/dashboard/layout.tsx @@ -27,11 +27,15 @@ import { import AuthModal from "@/components/4nk/AuthModal" import MessageBus from "@/lib/4nk/MessageBus" import UserStore from "@/lib/4nk/UserStore" +import Iframe from "@/components/4nk/Iframe" // DebugInfo supprimé export default function DashboardLayout({ children }: { children: React.ReactNode }) { const [isAuthenticated, setIsAuthenticated] = useState(false) const [isAuthModalOpen, setIsAuthModalOpen] = useState(false) + const [processes, setProcesses] = useState(null) + const [myProcesses, setMyProcesses] = useState([]) + const [userPairingId, setUserPairingId] = useState(null) const [isLoading, setIsLoading] = useState(true) const [isMockMode, setIsMockMode] = useState(false) const [sidebarOpen, setSidebarOpen] = useState(false) @@ -52,6 +56,39 @@ export default function DashboardLayout({ children }: { children: React.ReactNod { name: "Paramètres", href: "/dashboard/settings", icon: Settings }, ] + useEffect(() => { + const messageBus = MessageBus.getInstance(iframeUrl); + messageBus.isReady().then(() => { + messageBus.getProcesses().then((processes: any) => { + setProcesses(processes); + }); + }); + }, [iframeUrl]); + + useEffect(() => { + if (processes !== null) { + const messageBus = MessageBus.getInstance(iframeUrl); + messageBus.isReady().then(() => { + messageBus.getMyProcesses().then((res: string[]) => { + setMyProcesses(res); + }) + }); + } + }, [processes]); + + useEffect(() => { + if (userPairingId === null) { + const messageBus = MessageBus.getInstance(iframeUrl); + messageBus.isReady().then(() => { + messageBus.getUserPairingId().then((userPairingId: string) => { + UserStore.getInstance().pair(userPairingId); + setUserPairingId(UserStore.getInstance().getUserPairingId()); + console.log("User paired!"); + }) + }); + } + }, [userPairingId, processes]); + useEffect(() => { const checkAuthentication = async () => { try { @@ -60,37 +97,19 @@ export default function DashboardLayout({ children }: { children: React.ReactNod const messageBus = MessageBus.getInstance(iframeUrl) if (accessToken) { - // Vérifier si on est en mode mock - // const mockMode = messageBus.isInMockMode() - // setIsMockMode(mockMode) - - if (true) { - console.log("🎭 Dashboard en mode mock") + // Vérifier la validité du token en mode production + // const isValid = await messageBus.validateToken() + // if (isValid) { setIsAuthenticated(true) + const pairingId = userStore.getUserPairingId() setUserInfo({ - id: "mock_user_001", - name: "Utilisateur Démo", - email: "demo@docv.fr", - role: "Administrateur", - company: "Entreprise Démo (ID: 1234)", + id: pairingId?.slice(0, 8) + "...", + name: "Utilisateur 4NK", + email: "user@4nk.io", + role: "Utilisateur", + company: "Organisation 4NK", }) - } else { - // Vérifier la validité du token en mode production - const isValid = await messageBus.validateToken() - if (isValid) { - setIsAuthenticated(true) - const pairingId = userStore.getUserPairingId() - setUserInfo({ - id: pairingId?.slice(0, 8) + "...", - name: "Utilisateur 4NK", - email: "user@4nk.io", - role: "Utilisateur", - company: "Organisation 4NK", - }) - } else { - setIsAuthModalOpen(true) - } - } + // } } else { setIsAuthModalOpen(true) } @@ -114,10 +133,7 @@ export default function DashboardLayout({ children }: { children: React.ReactNod const handleLogout = () => { const userStore = UserStore.getInstance() - const messageBus = MessageBus.getInstance(iframeUrl) - userStore.disconnect() - // messageBus.disableMockMode() // Afficher un message de confirmation avec options setShowLogoutConfirm(true) @@ -210,9 +226,8 @@ export default function DashboardLayout({ children }: { children: React.ReactNod setSidebarOpen(false)} > @@ -304,10 +319,10 @@ export default function DashboardLayout({ children }: { children: React.ReactNod

Vous avez été déconnecté de votre espace sécurisé DocV.

- + */}
)} + {