reload app_window on every code execution

This commit is contained in:
Dmitry Vasilev
2024-02-23 18:17:50 +08:00
parent cb115bf030
commit 8239e19c89
17 changed files with 437 additions and 350 deletions

View File

@@ -2,8 +2,15 @@ import {render} from 'https://unpkg.com/preact?module';
let state, component, root
if(globalThis.leporello) {
// See https://github.com/leporello-js/leporello-js?tab=readme-ov-file#saving-state-between-page-reloads
// Get initial state from Leporello storage
state = globalThis.leporello.storage.get('state')
}
export const createApp = initial => {
/* if state is already initialized then preserve it */
/* if state was loaded from Leporello storage then keep it,
* otherwise initialize with initial state */
state = state ?? initial.initialState
component = initial.component
root = initial.root
@@ -12,6 +19,10 @@ export const createApp = initial => {
export const handler = fn => (...args) => {
state = fn(state, ...args)
if(globalThis.leporello) {
// Save state to Leporello storage to load it after page reload
globalThis.leporello.storage.set('state', state)
}
do_render()
}