@@ -13,7 +13,25 @@ export const useDataStyleStore = defineStore("dataStyle", () => {
1313
1414 /** Actions **/
1515 function addDataStyle ( id , geode_object , object_type ) {
16+ const already = ! ! dataStyleState . styles [ id ]
17+ console . log ( "[DataStyle] addDataStyle" , {
18+ id,
19+ geode_object,
20+ object_type,
21+ already,
22+ } )
23+ // Idempotent: si le style existe (ex: import), ne pas réappliquer les defaults
24+ if ( already ) {
25+ console . log ( "[DataStyle] addDataStyle -> skip (style already exists)" )
26+ return Promise . resolve ( [ ] )
27+ }
28+
1629 dataStyleState . styles [ id ] = getDefaultStyle ( geode_object )
30+ console . log ( "[DataStyle] addDataStyle -> default created" , {
31+ id,
32+ styleKeys : Object . keys ( dataStyleState . styles [ id ] || { } ) ,
33+ } )
34+
1735 const promise_array = [ ]
1836 if ( object_type === "mesh" ) {
1937 promise_array . push ( meshStyleStore . applyMeshDefaultStyle ( id ) )
@@ -74,33 +92,35 @@ export const useDataStyleStore = defineStore("dataStyle", () => {
7492 const stylesSnapshot = snapshot ?. styles || { }
7593 console . log ( "[DataStyle] importStores snapshot ids:" , Object . keys ( stylesSnapshot ) )
7694
77- for ( const id of Object . keys ( dataStyleState . styles ) ) {
78- delete dataStyleState . styles [ id ]
79- }
95+ // Conserver la référence réactive -> clear + merge
96+ for ( const id of Object . keys ( dataStyleState . styles ) ) delete dataStyleState . styles [ id ]
8097 for ( const [ id , style ] of Object . entries ( stylesSnapshot ) ) {
8198 dataStyleState . styles [ id ] = style
8299 }
100+ console . log ( "[DataStyle] importStores merged ids:" , Object . keys ( dataStyleState . styles ) )
83101 }
84102
85103 async function applyAllStylesFromState ( ) {
86104 const ids = Object . keys ( dataStyleState . styles || { } )
87- console . log ( "[DataStyle] applyAllStylesFromState ids:" , ids )
88- const applyTasks = [ ]
105+ console . log ( "[DataStyle] applyAllStylesFromState start ids:" , ids )
106+
107+ // Séquentiel par id pour mieux tracer et éviter les courses
89108 for ( const id of ids ) {
90109 const meta = dataBaseStore . itemMetaDatas ( id )
91110 const objectType = meta ?. object_type
92111 const style = dataStyleState . styles [ id ]
93- if ( ! style ) {
94- console . warn ( "[DataStyle] No style for id :" , id , "skip" )
112+ if ( ! style || ! objectType ) {
113+ console . warn ( "[DataStyle] applyAllStylesFromState skip :" , { id, hasStyle : ! ! style , objectType } )
95114 continue
96115 }
116+ console . log ( "[DataStyle] applyAllStylesFromState applying:" , { id, objectType } )
97117 if ( objectType === "mesh" ) {
98- applyTasks . push ( Promise . all ( meshStyleStore . applyMeshDefaultStyle ( id ) ) )
118+ await meshStyleStore . applyMeshDefaultStyle ( id )
99119 } else if ( objectType === "model" ) {
100- applyTasks . push ( modelStyleStore . applyModelDefaultStyle ( id ) )
120+ await modelStyleStore . applyModelDefaultStyle ( id )
101121 }
122+ console . log ( "[DataStyle] applyAllStylesFromState applied:" , id )
102123 }
103- await Promise . all ( applyTasks )
104124 console . log ( "[DataStyle] applyAllStylesFromState finished" )
105125 }
106126
0 commit comments