diff options
author | Paul Frazee <pfrazee@gmail.com> | 2022-08-31 14:36:50 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-31 14:36:50 -0500 |
commit | 97f52b6a03ab36dcbf21256cc0137b550b10f174 (patch) | |
tree | c632b69f038d33ea82c3378451f72177dc136cfe /src/view/lib | |
parent | d1470bad6628022eda66c658d228cc7646abc746 (diff) | |
download | voidsky-97f52b6a03ab36dcbf21256cc0137b550b10f174.tar.zst |
New navigation model (#1)
* Flatten all routing into a single stack * Replace router with custom implementation * Add shell header and titles * Add tab selector * Add back/forward history menus on longpress * Fix: don't modify state during render * Add refresh() to navigation and reroute navigations to the current location to refresh instead of add to history * Cache screens during navigation to maintain scroll position and improve load-time for renders
Diffstat (limited to 'src/view/lib')
-rw-r--r-- | src/view/lib/navigation.ts | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/view/lib/navigation.ts b/src/view/lib/navigation.ts new file mode 100644 index 000000000..2024918e7 --- /dev/null +++ b/src/view/lib/navigation.ts @@ -0,0 +1,12 @@ +import {useEffect} from 'react' +import {useStores} from '../../state' + +type CB = () => void +/** + * This custom effect hook will trigger on every "navigation" + * Use this in screens to handle any loading behaviors needed + */ +export function useLoadEffect(cb: CB, deps: any[] = []) { + const store = useStores() + useEffect(cb, [store.nav.tab, ...deps]) +} |