// EwoooC - 主應用
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"sidebarCollapsed": false,
"sidebarTheme": "light",
"density": "comfortable",
"cardStyle": "shadow",
"buttonStyle": "gradient",
"page": "dashboard",
"campaignHero": "dotted"
}/*EDITMODE-END*/;
const MomoApp = ({ tweaks, setTweak, fixedPage, label }) => {
const [cmdOpen, setCmdOpen] = React.useState(false);
const [editProduct, setEditProduct] = React.useState(null);
const [priceProduct, setPriceProduct] = React.useState(null);
const page = fixedPage || tweaks.page;
// Cmd+K 開啟命令面板
React.useEffect(() => {
const onKey = (e) => {
if ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k') {
e.preventDefault();
setCmdOpen(true);
}
if (e.key === 'Escape') {
setCmdOpen(false);
setEditProduct(null);
setPriceProduct(null);
}
};
window.addEventListener('keydown', onKey);
return () => window.removeEventListener('keydown', onKey);
}, []);
return (
setTweak && setTweak('page', id)}
collapsed={tweaks.sidebarCollapsed}
sidebarTheme={tweaks.sidebarTheme}
/>
setTweak && setTweak('sidebarCollapsed', !tweaks.sidebarCollapsed)}
onOpenCmd={() => setCmdOpen(true)}
/>
{label && (
{label}
)}
{page === 'dashboard' && (
)}
{page === 'campaigns' && (
)}
{page === 'analytics-sales' && }
{['analytics-daily','analytics-growth','analytics-monthly','analytics'].includes(page) && (
)}
{page === 'orders' && (
)}
{page === 'products' && (
)}
{!['dashboard','orders','products','campaigns','analytics-sales','analytics-daily','analytics-growth','analytics-monthly','analytics'].includes(page) && (
)}
setCmdOpen(false)}
onNavigate={(id) => setTweak && setTweak('page', id)}
/>
setEditProduct(null)}
buttonStyle={tweaks.buttonStyle}
/>
setPriceProduct(null)}
/>
);
};
const EmptyPage = ({ page }) => {
const labels = {
inventory: '庫存管理', members: '會員管理', marketing: '行銷活動',
analytics: '分析報表', settings: '系統設定',
'analytics-daily': '當日業績',
'analytics-growth': '成長分析',
'analytics-monthly': '月份總表數據分析',
outofstock: '廠商缺貨', ai: 'AI 助手', cloud: '雲端匯入',
};
return (
{labels[page]} 即將推出
此區尚未建置示意內容,歡迎在 Tweaks 切換到其他頁面預覽。
);
};
window.MomoApp = MomoApp;
window.TWEAK_DEFAULTS = TWEAK_DEFAULTS;