Refactors calendar data management and sync infrastructure
Introduces comprehensive data management system for calendar V2 - Adds IndexedDB storage with pluggable entity services - Implements EventBus for decoupled event communication - Creates data seeding mechanism for initial application setup - Establishes sync and repository abstractions for flexible data handling
This commit is contained in:
parent
dee977d4df
commit
e581039b62
17 changed files with 1076 additions and 4 deletions
|
|
@ -5,6 +5,8 @@ import { DateService } from '../core/DateService';
|
|||
import { ScrollManager } from '../core/ScrollManager';
|
||||
import { HeaderDrawerManager } from '../core/HeaderDrawerManager';
|
||||
import { ViewConfig } from '../core/ViewConfig';
|
||||
import { IndexedDBContext } from '../storage/IndexedDBContext';
|
||||
import { DataSeeder } from '../workers/DataSeeder';
|
||||
|
||||
export class DemoApp {
|
||||
private animator!: NavigationAnimator;
|
||||
|
|
@ -17,10 +19,20 @@ export class DemoApp {
|
|||
private timeAxisRenderer: TimeAxisRenderer,
|
||||
private dateService: DateService,
|
||||
private scrollManager: ScrollManager,
|
||||
private headerDrawerManager: HeaderDrawerManager
|
||||
private headerDrawerManager: HeaderDrawerManager,
|
||||
private indexedDBContext: IndexedDBContext,
|
||||
private dataSeeder: DataSeeder
|
||||
) {}
|
||||
|
||||
init(): void {
|
||||
async init(): Promise<void> {
|
||||
// Initialize IndexedDB
|
||||
await this.indexedDBContext.initialize();
|
||||
console.log('[DemoApp] IndexedDB initialized');
|
||||
|
||||
// Seed data if empty
|
||||
await this.dataSeeder.seedIfEmpty();
|
||||
console.log('[DemoApp] Data seeding complete');
|
||||
|
||||
this.container = document.querySelector('swp-calendar-container') as HTMLElement;
|
||||
|
||||
// NavigationAnimator har DOM-dependencies - tilladt med new
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
import { createV2Container } from '../V2CompositionRoot';
|
||||
import { DemoApp } from './DemoApp';
|
||||
|
||||
const app = createV2Container();
|
||||
app.resolveType<DemoApp>().init();
|
||||
const container = createV2Container();
|
||||
container.resolveType<DemoApp>().init().catch(console.error);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue