Moved setIsConnected & setUserPairingId in the DashboardLayout
This commit is contained in:
parent
5aff257c54
commit
9057b7af1e
@ -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)
|
||||||
@ -57,12 +59,24 @@ export default function DashboardLayout({ children }: { children: React.ReactNod
|
|||||||
]
|
]
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const messageBus = MessageBus.getInstance(iframeUrl);
|
const connected = UserStore.getInstance().isConnected();
|
||||||
messageBus.isReady().then(() => {
|
console.log('[Login] User connected:', connected);
|
||||||
messageBus.getProcesses().then((processes: any) => {
|
setIsConnected(connected);
|
||||||
setProcesses(processes);
|
}, []);
|
||||||
});
|
|
||||||
|
useEffect(() => {
|
||||||
|
const pairingId = UserStore.getInstance().getUserPairingId();
|
||||||
|
console.log('[Login] User pairing ID:', pairingId);
|
||||||
|
setUserPairingId(pairingId);
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const messageBus = MessageBus.getInstance(iframeUrl);
|
||||||
|
messageBus.isReady().then(() => {
|
||||||
|
messageBus.getProcesses().then((processes: any) => {
|
||||||
|
setProcesses(processes);
|
||||||
});
|
});
|
||||||
|
});
|
||||||
}, [iframeUrl]);
|
}, [iframeUrl]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -94,24 +108,17 @@ 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
|
setIsAuthenticated(true)
|
||||||
// const isValid = await messageBus.validateToken()
|
const pairingId = userStore.getUserPairingId()
|
||||||
// if (isValid) {
|
setUserInfo({
|
||||||
setIsAuthenticated(true)
|
id: pairingId?.slice(0, 8) + "...",
|
||||||
const pairingId = userStore.getUserPairingId()
|
name: "Utilisateur 4NK",
|
||||||
setUserInfo({
|
email: "user@4nk.io",
|
||||||
id: pairingId?.slice(0, 8) + "...",
|
role: "Utilisateur",
|
||||||
name: "Utilisateur 4NK",
|
company: "Organisation 4NK",
|
||||||
email: "user@4nk.io",
|
})
|
||||||
role: "Utilisateur",
|
|
||||||
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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
10
app/page.tsx
10
app/page.tsx
@ -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">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user