import React, { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { useAuth } from '@/contexts/AuthContext'; import HeroSection from './HeroSection'; import TokenomicsSection from './TokenomicsSection'; import TokenSwap from './TokenSwap'; import PalletsGrid from './PalletsGrid'; import TeamSection from './TeamSection'; import ChainSpecs from './ChainSpecs'; import TrustScoreCalculator from './TrustScoreCalculator'; import { WalletButton } from './wallet/WalletButton'; import { WalletModal } from './wallet/WalletModal'; import { LanguageSwitcher } from './LanguageSwitcher'; import NotificationBell from './notifications/NotificationBell'; import ProposalWizard from './proposals/ProposalWizard'; import DelegationManager from './delegation/DelegationManager'; import { ForumOverview } from './forum/ForumOverview'; import { ModerationPanel } from './forum/ModerationPanel'; import { TreasuryOverview } from './treasury/TreasuryOverview'; import { FundingProposal } from './treasury/FundingProposal'; import { SpendingHistory } from './treasury/SpendingHistory'; import { MultiSigApproval } from './treasury/MultiSigApproval'; import { Github, FileText, ExternalLink, Shield, Award, User, FileEdit, Users2, MessageSquare, ShieldCheck, Wifi, WifiOff, Wallet, DollarSign, PiggyBank, History, Key, TrendingUp, ArrowRightLeft, Lock, LogIn, LayoutDashboard, Settings, UserCog, Repeat } from 'lucide-react'; import GovernanceInterface from './GovernanceInterface'; import RewardDistribution from './RewardDistribution'; import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs'; import { useWebSocket } from '@/contexts/WebSocketContext'; import { StakingDashboard } from './staking/StakingDashboard'; import { P2PMarket } from './p2p/P2PMarket'; import { MultiSigWallet } from './wallet/MultiSigWallet'; import { useWallet } from '@/contexts/WalletContext'; import { supabase } from '@/lib/supabase'; const AppLayout: React.FC = () => { const navigate = useNavigate(); const [walletModalOpen, setWalletModalOpen] = useState(false); const [transactionModalOpen, setTransactionModalOpen] = useState(false); const { user, signOut } = useAuth(); const [showProposalWizard, setShowProposalWizard] = useState(false); const [showDelegation, setShowDelegation] = useState(false); const [showForum, setShowForum] = useState(false); const [showModeration, setShowModeration] = useState(false); const [showTreasury, setShowTreasury] = useState(false); const [treasuryTab, setTreasuryTab] = useState('overview'); const [showStaking, setShowStaking] = useState(false); const [showP2P, setShowP2P] = useState(false); const [showMultiSig, setShowMultiSig] = useState(false); const [showTokenSwap, setShowTokenSwap] = useState(false); const { t } = useTranslation(); const { isConnected } = useWebSocket(); const { account } = useWallet(); const [isAdmin, setIsAdmin] = useState(false); // Check if user is admin React.useEffect(() => { const checkAdminStatus = async () => { if (user) { const { data } = await supabase .from('admin_roles') .select('role') .eq('user_id', user.id) .single(); setIsAdmin(!!data); } }; checkAdminStatus(); }, [user]); return (
{/* Navigation */} {/* Main Content */}
{/* Conditional Rendering for Features */} {showProposalWizard ? ( { console.log('Proposal created:', proposal); setShowProposalWizard(false); }} onCancel={() => setShowProposalWizard(false)} /> ) : showDelegation ? ( ) : showForum ? (
) : showModeration ? (
) : showTreasury ? (

{t('treasury.title', 'Treasury Management')}

{t('treasury.subtitle', 'Track funds, submit proposals, and manage community resources')}

{t('treasury.overview', 'Overview')} {t('treasury.proposals', 'Funding Proposals')} {t('treasury.history', 'Spending History')} {t('treasury.approvals', 'Multi-Sig Approvals')}
) : showStaking ? (

Staking Rewards

Stake your tokens and earn rewards

) : showP2P ? (

P2P Trading Market

Trade tokens directly with other users

) : showTokenSwap ? (

PEZ/HEZ Token Swap

Swap between PEZ and HEZ tokens instantly with real-time rates

) : showMultiSig ? (

Multi-Signature Wallet

Secure your funds with multi-signature protection

) : ( <>
)} {(showProposalWizard || showDelegation || showForum || showModeration || showTreasury || showStaking || showP2P || showMultiSig || showTokenSwap) && (
)}
{/* Wallet Modal */} setWalletModalOpen(false)} /> {/* Footer */}
); }; export default AppLayout;