@@ -12,6 +12,7 @@ import { useFileStore } from './datasets-files';
1212import { StateFile } from '../io/state-file/schema' ;
1313import { useErrorMessage } from '../composables/useErrorMessage' ;
1414import { useLayersStore } from './datasets-layers' ;
15+ import { useModelStore } from './datasets-models' ;
1516
1617export const DataType = {
1718 Image : 'Image' ,
@@ -23,6 +24,7 @@ export const useDatasetStore = defineStore('dataset', () => {
2324 const dicomStore = useDICOMStore ( ) ;
2425 const fileStore = useFileStore ( ) ;
2526 const layersStore = useLayersStore ( ) ;
27+ const modelStore = useModelStore ( ) ;
2628
2729 // --- state --- //
2830
@@ -67,7 +69,9 @@ export const useDatasetStore = defineStore('dataset', () => {
6769 }
6870 }
6971
70- const remove = ( id : string ) => {
72+ const remove = ( id : string | null ) => {
73+ if ( ! id ) return ;
74+
7175 if ( id === primarySelection . value ) {
7276 primarySelection . value = null ;
7377 }
@@ -81,6 +85,19 @@ export const useDatasetStore = defineStore('dataset', () => {
8185 layersStore . remove ( id ) ;
8286 } ;
8387
88+ const removeAll = ( ) => {
89+ // Create a copy to avoid iteration issue while removing data
90+ const imageIdCopy = [ ...imageStore . idList ] ;
91+ imageIdCopy . forEach ( ( id ) => {
92+ remove ( id ) ;
93+ } ) ;
94+
95+ const modelIdCopy = [ ...modelStore . idList ] ;
96+ modelIdCopy . forEach ( ( id ) => {
97+ remove ( id ) ;
98+ } ) ;
99+ } ;
100+
84101 return {
85102 primaryImageID,
86103 primarySelection,
@@ -89,5 +106,6 @@ export const useDatasetStore = defineStore('dataset', () => {
89106 setPrimarySelection,
90107 serialize,
91108 remove,
109+ removeAll,
92110 } ;
93111} ) ;
0 commit comments