--- import yaml from "js-yaml"; import { Icon } from "astro-icon/components"; import fs from "node:fs"; import path from "node:path"; import { Authentication } from "../scripts/pocketbase/Authentication"; import { Get } from "../scripts/pocketbase/Get"; import { SendLog } from "../scripts/pocketbase/SendLog"; import { hasAccess, type OfficerStatus } from "../utils/roleAccess"; import { OfficerTypes } from "../schemas/pocketbase/schema"; import { initAuthSync } from "../scripts/database/initAuthSync"; import ToastProvider from "../components/dashboard/universal/ToastProvider"; import FirstTimeLoginManager from "../components/dashboard/universal/FirstTimeLoginManager"; const title = "Dashboard"; // Load environment variables const logtoApiEndpoint = import.meta.env.LOGTO_API_ENDPOINT || ""; // Load and parse dashboard config const configPath = path.join(process.cwd(), "src", "config", "dashboard.yaml"); const dashboardConfig = yaml.load(fs.readFileSync(configPath, "utf8")) as any; // Dynamically import all dashboard components const components = Object.fromEntries( await Promise.all( Object.values(dashboardConfig.sections) .filter((section: any) => section.component) // Only process sections with components .map(async (section: any) => { const component = await import( `../components/dashboard/${section.component}.astro` ); // console.log(`Loaded component: ${section.component}`); // Debug log return [section.component, component.default]; }) ) ); // console.log("Available components:", Object.keys(components)); // Debug log --- {title} | IEEE UCSD

IEEE UCSD

Loading dashboard...

{ Object.entries(dashboardConfig.sections).map( ([sectionKey, section]: [string, any]) => { // Skip if no component is defined if (!section.component) return null; const Component = components[section.component]; return ( ); } ) }