Files
hotline-planner/dev/ui-ux/deepseek (not good)/src/main.js
2026-02-24 13:32:01 +01:00

63 lines
1.8 KiB
JavaScript

/**
* main.js
* ========
* Application entry point.
* Registers all components, initializes Quasar, and mounts the app.
*/
const { createApp, onMounted } = Vue;
const { useQuasar } = Quasar;
/* ---- Import components ---- */
import AppHeader from './components/app-header/app-header.js';
import WorkspaceDrawer from './components/workspace-drawer/workspace-drawer.js';
import FilterDrawer from './components/filter-drawer/filter-drawer.js';
import AssignmentDrawer from './components/assignment-drawer/assignment-drawer.js';
import PlannerGrid from './components/planner-grid/planner-grid.js';
/* ---- Import services (for lifecycle) ---- */
import { loadDataFromDatabase } from './services/data-service.js';
import { startOnlineUsersSimulation } from './services/socket-service.js';
/* ---- Root App ---- */
const app = createApp({
components: {
AppHeader,
WorkspaceDrawer,
FilterDrawer,
AssignmentDrawer,
PlannerGrid
},
setup() {
const $q = useQuasar();
onMounted(() => {
loadDataFromDatabase($q);
startOnlineUsersSimulation($q);
});
},
template: `
<q-layout view="hHh Lpr fFf">
<app-header></app-header>
<workspace-drawer></workspace-drawer>
<filter-drawer></filter-drawer>
<assignment-drawer></assignment-drawer>
<q-page-container>
<planner-grid></planner-grid>
</q-page-container>
</q-layout>
`
});
app.use(Quasar, { config: { brand: {
primary: '#4f46e5', /* Indigo-600 */
secondary: '#0ea5e9', /* Sky-500 */
accent: '#8b5cf6', /* Violet-500 */
positive: '#10b981', /* Emerald-500 */
negative: '#ef4444', /* Red-500 */
warning: '#f59e0b', /* Amber-500 */
info: '#3b82f6', /* Blue-500 */
dark: '#1e293b'
} } });
app.mount('#q-app');