/* global React, UI */ const { useState } = React; function Logo({ size = 32 }) { return ( 陛下信箱 ); } function ThemeToggle({ variant }) { const [theme, setTheme] = useState(typeof window !== 'undefined' && window.bxGetTheme ? window.bxGetTheme() : 'light'); const isDark = theme === 'dark'; const toggle = () => setTheme(window.bxToggleTheme ? window.bxToggleTheme() : (isDark ? 'light' : 'dark')); const icon = isDark ? ( /* sun → 切到日间 */ ) : ( /* moon → 切到夜间 */ ); const label = isDark ? '切换到日间 · 白昼朝堂' : '切换到夜间 · 暗夜朝堂'; if (variant === 'drawer') { return ; } return ; } function Nav({ active, onNav, user, onLogin, onLogout, onSearch, onBell, notifCount }) { const items = [ { id: 'home', label: '首页' }, { id: 'compose', label: '呈递奏折' }, { id: 'feed', label: '御批精选' }, { id: 'rank', label: '爱卿榜' }, { id: 'track', label: '查询进度' }, ]; const [open, setOpen] = useState(false); const [menuOpen, setMenuOpen] = useState(false); return (
{user && } {!user ? ( ) : (
setMenuOpen(!menuOpen)}>
{user.name} ▾ {menuOpen && (
)}
)}
{open && (
{items.map(i => ( ))} {!user ? ( ) : ( <> )}
)}
); } function Footer({ onNav }) { const go = (r) => (e) => { e.preventDefault(); onNav && onNav(r); }; return ( ); } function Button({ variant = 'primary', size, children, icon, onClick, type, disabled, title }) { const cls = `bx-btn bx-btn--${variant}${size ? ' bx-btn--' + size : ''}`; return ; } function SealIcon({ size = 14, color = 'var(--bronze)' }) { return ( ); } function CloudDivider() { return ( ); } Object.assign(window, { Logo, Nav, Footer, Button, SealIcon, CloudDivider });