import Collection from '../pages/collections/Collection'; import Collections from '../pages/collections/Collections'; import Connect from '../pages/connect/Connect'; import Overview from '../pages/overview/Overview'; // import VectorSearch from '../pages/seach/VectorSearch'; import { RouterConfigType } from './Types'; import loadable from '@loadable/component'; import Users from '../pages/user/User'; const RouterConfig: RouterConfigType[] = [ { path: '/', component: Overview, auth: true, }, { path: '/connect', component: Connect, auth: false, }, { path: '/collections', component: Collections, auth: true, }, { path: '/collections/:collectionName', component: Collection, auth: true, }, { path: '/users', component: Users, auth: true }, ]; async function importAll(r: any) { Object.keys(r).forEach((key: any) => { const content = r[key]; const dirName = key.split('/config.json').shift().split('/')[1]; const pathName = content.client?.path; const fileEntry = content.client?.entry; if (!pathName || !fileEntry) return; const auth = content.client?.auth || false; const OtherComponent = loadable( () => import(`../${dirName}/${pathName}/${fileEntry}.tsx`) ); RouterConfig.push({ path: `/${pathName}`, component: OtherComponent, auth, }); }); } const pluginConfigs = import.meta.glob(`../plugins/**/config.json`, { eager: true, }); importAll(pluginConfigs); export default RouterConfig;