import React, { useState } from 'react'; import { Building2, FileText, Settings, Plus, Sparkles, TrendingUp, Shield } from 'lucide-react'; import UsageCard from './UsageCard'; import PricingModal from './PricingModal'; import WizardModal from './WizardModal'; import { NavLink, useLocation } from 'react-router-dom'; import { UserButton, useUser } from '@clerk/clerk-react'; import { useMe } from '../../hooks/useMe'; const Sidebar: React.FC = () => { const [showPricing, setShowPricing] = useState(false); const [showWizard, setShowWizard] = useState(false); const location = useLocation(); const { user } = useUser(); const { data: me } = useMe(); const isProjectWorkspace = location.pathname.startsWith('/projects/'); // tier hierarchy: me (DB) > Clerk metadata > 'free' const tier = me?.tier ?? (user?.publicMetadata?.stripe_subscription as string) ?? 'free'; const isPro = tier === 'pro' || tier === 'business'; const tierLabel = tier.toUpperCase(); const tierColor = tier === 'business' ? '#f59e0b' : tier === 'pro' ? 'var(--accent-green)' : '#6b7280'; return ( <>
GF

GrantForge

Enterprise v2.0

setShowPricing(true)} compact={isProjectWorkspace} />
Profil Doradcy

{user ? `${user.firstName || ''} ${user.lastName || ''}`.trim() || user.primaryEmailAddress?.emailAddress : 'Zaloguj siÄ™'}

{isPro && } {tierLabel}
Akcje i Nawigacja
`btn projects-list ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#fff' : 'var(--text-secondary)' })}> Moje Projekty `btn ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#fff' : 'var(--text-secondary)' })}> Aktywne Nabory `btn ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#fff' : 'var(--text-secondary)' })}> O Programie `btn ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#fff' : 'var(--text-secondary)' })}> Pomoc `btn ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#fff' : 'var(--text-secondary)' })}> Ustawienia `btn ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#f59e0b' : 'var(--text-secondary)' })}> Admin Panel `btn ${isActive ? 'btn-secondary' : ''}`} style={({isActive}) => ({ justifyContent: 'flex-start', background: 'transparent', border: 'none', color: isActive ? '#10b981' : 'var(--text-secondary)' })}> Beta Guide
{showPricing && setShowPricing(false)} />} {showWizard && setShowWizard(false)} />} ); }; export default Sidebar;