@@ -60,6 +60,7 @@ export enum BroadcastChannelMessages {
6060 RELOAD_PROJECT = "reload-project" ,
6161 REMOVE_MODEL = "remove-model" ,
6262}
63+ // Used to keep state synced between open tabs.
6364const broadcastChannel = new BroadcastChannel ( "ml" ) ;
6465
6566const storage = new Database ( ) ;
@@ -425,7 +426,12 @@ const createMlStore = (logging: Logging) => {
425426 } ,
426427
427428 async loadProjectFromStorage ( ) {
428- set ( await storage . loadProject ( ) ) ;
429+ const persistedData = await storage . loadProject ( ) ;
430+ set ( {
431+ // Get data window from actions on app load.
432+ dataWindow : getDataWindowFromActions ( persistedData . actions ) ,
433+ ...persistedData ,
434+ } ) ;
429435 } ,
430436
431437 async addNewAction ( ) {
@@ -1414,16 +1420,6 @@ const getDataWindowFromActions = (actions: ActionData[]): DataWindow => {
14141420 : currentDataWindow ;
14151421} ;
14161422
1417- // Get data window from actions on app load.
1418- // TODO: change when this happens.
1419- // Don't use actions as a global value in this file, it is dangerous.
1420- const { actions : actionsForDataWindow } = useStore . getState ( ) ;
1421- useStore . setState (
1422- { dataWindow : getDataWindowFromActions ( actionsForDataWindow ) } ,
1423- false ,
1424- "setDataWindow"
1425- ) ;
1426-
14271423const loadModelFromStorage = async ( ) => {
14281424 try {
14291425 const model = await tf . loadLayersModel ( modelUrl ) ;
@@ -1576,8 +1572,7 @@ const storageWithErrHandling = async <T>(
15761572} ;
15771573
15781574export const loadProjectFromStorage = async ( ) => {
1579- const loadProjectFromStorage = useStore . getState ( ) . loadProjectFromStorage ;
1580- await loadProjectFromStorage ( ) ;
1575+ await useStore . getState ( ) . loadProjectFromStorage ( ) ;
15811576 await loadModelFromStorage ( ) ;
15821577 return true ;
15831578} ;
0 commit comments