9aa7a51f0b
- 移除 Dashboard 相关的组件、特性和测试代码,简化项目结构。 - 更新 PageSkeleton 组件,默认渲染工具页面骨架。 - 修改 RouterContainer 和 RouterProvider 以适应新的默认路由策略,确保用户直接访问 timestamp 页面。 - 更新测试用例,确保在新结构下的功能正常。
44 lines
1.6 KiB
TypeScript
44 lines
1.6 KiB
TypeScript
import type { ComponentType } from 'react';
|
|
import type { PageType } from '@/types/storage';
|
|
|
|
type PageModule = { default: ComponentType };
|
|
|
|
let pagesStylesLoaded = false;
|
|
|
|
function ensurePagesStyles(): Promise<unknown> {
|
|
if (pagesStylesLoaded) {
|
|
return Promise.resolve();
|
|
}
|
|
pagesStylesLoaded = true;
|
|
return import('@/styles/pages.css');
|
|
}
|
|
|
|
export function loadPage(key: PageType): Promise<PageModule> {
|
|
return ensurePagesStyles().then(() => {
|
|
switch (key) {
|
|
case 'timestamp':
|
|
return import('@/config/pageLoaders/timestamp').then((m) => m.default());
|
|
case 'storageCleaner':
|
|
return import('@/config/pageLoaders/storageCleaner').then((m) => m.default());
|
|
case 'qrCode':
|
|
return import('@/config/pageLoaders/qrCode').then((m) => m.default());
|
|
case 'textStatistics':
|
|
return import('@/config/pageLoaders/textStatistics').then((m) => m.default());
|
|
case 'jwt':
|
|
return import('@/config/pageLoaders/jwt').then((m) => m.default());
|
|
case 'jsonTools':
|
|
return import('@/config/pageLoaders/jsonTools').then((m) => m.default());
|
|
case 'base64Converter':
|
|
return import('@/config/pageLoaders/base64Converter').then((m) => m.default());
|
|
case 'rightClickRestorer':
|
|
return import('@/config/pageLoaders/rightClickRestorer').then((m) => m.default());
|
|
case 'testDataGenerator':
|
|
return import('@/config/pageLoaders/testDataGenerator').then((m) => m.default());
|
|
default: {
|
|
const _exhaustive: never = key;
|
|
return Promise.reject(new Error(`Unknown page: ${String(_exhaustive)}`));
|
|
}
|
|
}
|
|
});
|
|
}
|