feat(admin-ui): introduce view layer and refactor admin UI to use view components, consolidate demos, and update interfaces

This commit is contained in:
2025-12-27 12:33:14 +00:00
parent 87ac6e506f
commit c5632dae77
18 changed files with 875 additions and 754 deletions

View File

@@ -11,14 +11,11 @@ import type { DeesAppuiBase } from '@design.estate/dees-catalog';
import { adminState } from '../../services/admin-state.js';
import { demoFunc } from './upladmin-app.demo.js';
// Import components directly
import '../../elements/upladmin-dashboard/upladmin-dashboard.js';
import '../../elements/upladmin-monitor-list/upladmin-monitor-list.js';
import '../../elements/upladmin-monitor-form/upladmin-monitor-form.js';
import '../../elements/upladmin-incident-list/upladmin-incident-list.js';
import '../../elements/upladmin-incident-form/upladmin-incident-form.js';
import '../../elements/upladmin-incident-update/upladmin-incident-update.js';
import '../../elements/upladmin-statuspage-config/upladmin-statuspage-config.js';
// Import view components
import '../../views/upladmin-dashboard-view/upladmin-dashboard-view.js';
import '../../views/upladmin-monitors-view/upladmin-monitors-view.js';
import '../../views/upladmin-incidents-view/upladmin-incidents-view.js';
import '../../views/upladmin-config-view/upladmin-config-view.js';
declare global {
interface HTMLElementTagNameMap {
@@ -176,14 +173,14 @@ export class UpladminApp extends DeesElement {
id: 'dashboard',
name: 'Dashboard',
iconName: 'lucide:layoutDashboard',
content: 'upladmin-dashboard',
content: 'upladmin-dashboard-view',
route: 'dashboard',
},
{
id: 'monitors',
name: 'Monitors',
iconName: 'lucide:activity',
content: 'upladmin-monitor-list',
content: 'upladmin-monitors-view',
route: 'monitors',
badge: adminState.monitors.length,
},
@@ -191,7 +188,7 @@ export class UpladminApp extends DeesElement {
id: 'monitor-form',
name: 'Monitor',
iconName: 'lucide:activity',
content: 'upladmin-monitor-form',
content: 'upladmin-monitors-view',
route: 'monitors/:id',
cache: false,
},
@@ -199,7 +196,7 @@ export class UpladminApp extends DeesElement {
id: 'incidents',
name: 'Incidents',
iconName: 'lucide:alertCircle',
content: 'upladmin-incident-list',
content: 'upladmin-incidents-view',
route: 'incidents',
badge: adminState.getActiveIncidents().length,
badgeVariant: adminState.getActiveIncidents().length > 0 ? 'warning' : 'default',
@@ -208,7 +205,7 @@ export class UpladminApp extends DeesElement {
id: 'incident-form',
name: 'Incident',
iconName: 'lucide:alertCircle',
content: 'upladmin-incident-form',
content: 'upladmin-incidents-view',
route: 'incidents/:id',
cache: false,
},
@@ -216,7 +213,7 @@ export class UpladminApp extends DeesElement {
id: 'incident-update',
name: 'Post Update',
iconName: 'lucide:messageSquarePlus',
content: 'upladmin-incident-update',
content: 'upladmin-incidents-view',
route: 'incidents/:id/update',
cache: false,
},
@@ -224,9 +221,17 @@ export class UpladminApp extends DeesElement {
id: 'config',
name: 'Settings',
iconName: 'lucide:settings',
content: 'upladmin-statuspage-config',
content: 'upladmin-config-view',
route: 'config',
},
{
id: 'config-section',
name: 'Settings',
iconName: 'lucide:settings',
content: 'upladmin-config-view',
route: 'config/:section',
cache: false,
},
],
mainMenu: {