"use client"; import React, { useState, useEffect } from "react"; import { usePathname } from "next/navigation"; import { useAccount } from "wagmi"; import { Sidebar } from "./Sidebar"; import { use0GBroker } from "../hooks/use0GBroker"; import { NavigationProvider, useNavigation } from "./OptimizedNavigation"; import SimpleLoader from "./SimpleLoader"; interface LayoutContentProps { children: React.ReactNode; } const MainContentArea: React.FC<{ children: React.ReactNode; isHomePage: boolean }> = ({ children, isHomePage }) => { const { isNavigating, targetRoute } = useNavigation(); if (isNavigating) { return (
); } return (
{isHomePage ? (
{children}
) : ( children )}
); }; export const LayoutContent: React.FC = ({ children }) => { const pathname = usePathname(); const isHomePage = pathname === "/"; const { isConnected } = useAccount(); const { broker } = use0GBroker(); const [showDepositModal, setShowDepositModal] = useState(false); const [showTopUpModal, setShowTopUpModal] = useState(false); const [isLoading, setIsLoading] = useState(false); useEffect(() => { const checkLedger = async () => { if (broker && isConnected && !isHomePage) { try { const ledger = await broker.ledger.getLedger(); if (!ledger) { setShowDepositModal(true); } } catch (err: unknown) { setShowDepositModal(true); } } }; checkLedger(); }, [broker, isConnected, isHomePage]); const handleCreateAccount = async () => { if (!broker) return; setIsLoading(true); try { await broker.ledger.addLedger(0); setShowDepositModal(false); setShowTopUpModal(true); } catch (err: unknown) { // Keep modal open on error } finally { setIsLoading(false); } }; const handleDeposit = async (amount: number) => { if (!broker) return; setIsLoading(true); try { await broker.ledger.depositFund(amount); setShowTopUpModal(false); } catch (err: unknown) { // Keep modal open on error } finally { setIsLoading(false); } }; const handleSkipDeposit = () => { setShowTopUpModal(false); }; return (
{isHomePage ? null : } {children}
{/* Global Account Creation Modal */} {showDepositModal && (

Create Your Account

Welcome to 0G Compute Network! Create your account to get started.

)} {/* Top-up Modal - Step 2 */} {showTopUpModal && (

Account Created Successfully!

Would you like to add some funds to your account now?

)}
); };