@@ -12,6 +12,9 @@ import { ContainerMeta } from '@tdev-models/documents/DynamicDocumentRoots/Conta
1212import iCodeMeta , { MetaInit } from '@tdev-models/documents/iCode/iCodeMeta' ;
1313import { computed } from 'mobx' ;
1414import React from 'react' ;
15+ import { TypeMeta } from '@tdev-models/DocumentRoot' ;
16+ import { ModelMeta as ProgressStateMeta } from '@tdev-models/documents/ProgressState' ;
17+ import { TaskMeta as TaskStateMeta } from '@tdev-models/documents/TaskState' ;
1518
1619export type LiveCode = `live_${string } `;
1720
@@ -51,7 +54,10 @@ class ComponentStore {
5154 readonly root : RootStore ;
5255 components = new Map < ContainerType , ContainerComponent > ( ) ;
5356 editorComponents = new Map < CodeType , EditorComponent > ( ) ;
54- taskableDocuments = new Set < DocumentType > ( [ 'task_state' , 'progress_state' ] ) ;
57+ taskableDocumentsMeta = new Map < DocumentType , TypeMeta < TaskableType > > ( [
58+ [ 'task_state' , new TaskStateMeta ( { } ) ] ,
59+ [ 'progress_state' , new ProgressStateMeta ( { } ) ]
60+ ] ) ;
5561
5662 constructor ( root : RootStore ) {
5763 this . root = root ;
@@ -65,15 +71,21 @@ class ComponentStore {
6571 this . components . set ( type , component as ContainerComponent < any > ) ;
6672 }
6773
68- registerTaskableDocumentType ( type : TaskableType ) {
69- this . taskableDocuments . add ( type ) ;
74+ registerTaskableDocumentType < T extends TaskableType > ( defaultMeta : TypeMeta < T > ) {
75+ this . taskableDocumentsMeta . set ( defaultMeta . type , defaultMeta ) ;
76+ }
77+
78+ @computed
79+ get taskableDocuments ( ) {
80+ return new Set ( [ ...this . taskableDocumentsMeta . keys ( ) ] ) ;
7081 }
7182
7283 @computed
7384 get defaultMeta ( ) {
7485 return [
7586 ...[ ...this . components . values ( ) ] . map ( ( comp ) => comp . defaultMeta ) ,
76- ...[ ...this . editorComponents . values ( ) ] . map ( ( comp ) => comp . createModelMeta ( { } ) )
87+ ...[ ...this . editorComponents . values ( ) ] . map ( ( comp ) => comp . createModelMeta ( { } ) ) ,
88+ ...[ ...this . taskableDocumentsMeta . values ( ) ]
7789 ] ;
7890 }
7991
0 commit comments