Moved setIsConnected & setUserPairingId in the DashboardLayout

This commit is contained in:
Sadrinho27 2025-09-30 14:57:45 +02:00
parent 5aff257c54
commit 9057b7af1e
2 changed files with 39 additions and 32 deletions

View File

@ -28,6 +28,7 @@ import AuthModal from "@/components/4nk/AuthModal"
import MessageBus from "@/lib/4nk/MessageBus" import MessageBus from "@/lib/4nk/MessageBus"
import UserStore from "@/lib/4nk/UserStore" import UserStore from "@/lib/4nk/UserStore"
import Iframe from "@/components/4nk/Iframe" import Iframe from "@/components/4nk/Iframe"
import EventBus from "@/lib/4nk/EventBus"
// DebugInfo supprimé // DebugInfo supprimé
export default function DashboardLayout({ children }: { children: React.ReactNode }) { export default function DashboardLayout({ children }: { children: React.ReactNode }) {
@ -35,6 +36,7 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
const [isAuthModalOpen, setIsAuthModalOpen] = useState(false) const [isAuthModalOpen, setIsAuthModalOpen] = useState(false)
const [processes, setProcesses] = useState<any>(null) const [processes, setProcesses] = useState<any>(null)
const [myProcesses, setMyProcesses] = useState<string[]>([]) const [myProcesses, setMyProcesses] = useState<string[]>([])
const [isConnected, setIsConnected] = useState(false)
const [userPairingId, setUserPairingId] = useState<string | null>(null) const [userPairingId, setUserPairingId] = useState<string | null>(null)
const [isLoading, setIsLoading] = useState(true) const [isLoading, setIsLoading] = useState(true)
const [isMockMode, setIsMockMode] = useState(false) const [isMockMode, setIsMockMode] = useState(false)
@ -56,6 +58,18 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
{ name: "Paramètres", href: "/dashboard/settings", icon: Settings }, { name: "Paramètres", href: "/dashboard/settings", icon: Settings },
] ]
useEffect(() => {
const connected = UserStore.getInstance().isConnected();
console.log('[Login] User connected:', connected);
setIsConnected(connected);
}, []);
useEffect(() => {
const pairingId = UserStore.getInstance().getUserPairingId();
console.log('[Login] User pairing ID:', pairingId);
setUserPairingId(pairingId);
}, []);
useEffect(() => { useEffect(() => {
const messageBus = MessageBus.getInstance(iframeUrl); const messageBus = MessageBus.getInstance(iframeUrl);
messageBus.isReady().then(() => { messageBus.isReady().then(() => {
@ -94,12 +108,8 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
try { try {
const userStore = UserStore.getInstance() const userStore = UserStore.getInstance()
const accessToken = userStore.getAccessToken() const accessToken = userStore.getAccessToken()
const messageBus = MessageBus.getInstance(iframeUrl)
if (accessToken) { if (accessToken) {
// Vérifier la validité du token en mode production
// const isValid = await messageBus.validateToken()
// if (isValid) {
setIsAuthenticated(true) setIsAuthenticated(true)
const pairingId = userStore.getUserPairingId() const pairingId = userStore.getUserPairingId()
setUserInfo({ setUserInfo({
@ -109,9 +119,6 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
role: "Utilisateur", role: "Utilisateur",
company: "Organisation 4NK", company: "Organisation 4NK",
}) })
// }
} else {
setIsAuthModalOpen(true)
} }
} catch (error) { } catch (error) {
console.error("Error checking authentication:", error) console.error("Error checking authentication:", error)
@ -132,8 +139,14 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
} }
const handleLogout = () => { const handleLogout = () => {
const userStore = UserStore.getInstance() UserStore.getInstance().disconnect();
userStore.disconnect() setIsConnected(false);
// Émettre un événement pour vider aussi les messages locaux dans MessageConsole
EventBus.getInstance().emit('CLEAR_CONSOLE');
// Vider les processes
setProcesses(null);
// Afficher un message de confirmation avec options // Afficher un message de confirmation avec options
setShowLogoutConfirm(true) setShowLogoutConfirm(true)
@ -155,6 +168,8 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
<Shield className="h-12 w-12 mx-auto mb-4 text-blue-600 animate-pulse" /> <Shield className="h-12 w-12 mx-auto mb-4 text-blue-600 animate-pulse" />
<p className="text-gray-600">Vérification de l'authentification...</p> <p className="text-gray-600">Vérification de l'authentification...</p>
</div> </div>
{<Iframe iframeUrl={iframeUrl} />}
</div> </div>
) )
} }

View File

@ -19,14 +19,6 @@ export default function HomePage() {
const router = useRouter() const router = useRouter()
const iframeUrl = process.env.NEXT_PUBLIC_4NK_IFRAME_URL || "https://dev3.4nkweb.com" const iframeUrl = process.env.NEXT_PUBLIC_4NK_IFRAME_URL || "https://dev3.4nkweb.com"
useEffect(() => {
setIsConnected(UserStore.getInstance().isConnected());
});
useEffect(() => {
setUserPairingId(UserStore.getInstance().getUserPairingId());
});
return ( return (
<div className="min-h-screen bg-gradient-to-br from-slate-50 to-blue-50"> <div className="min-h-screen bg-gradient-to-br from-slate-50 to-blue-50">
{/* Header */} {/* Header */}
@ -96,7 +88,7 @@ export default function HomePage() {
/> />
)} )}
{isConnected && <Iframe iframeUrl={iframeUrl} />} {<Iframe iframeUrl={iframeUrl} />}
{/* Product Features */} {/* Product Features */}
<section id="produit" className="py-16 px-4 bg-white"> <section id="produit" className="py-16 px-4 bg-white">