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
This commit is contained in:
Paul Frazee 2022-08-31 14:36:50 -05:00 committed by GitHub
parent d1470bad66
commit 97f52b6a03
57 changed files with 1382 additions and 1159 deletions

View file

@ -1,13 +1,11 @@
import React from 'react'
import {Pressable, View, StyleSheet} from 'react-native'
import {Link} from '@react-navigation/native'
import {useRoute} from '@react-navigation/native'
export const NavItem: React.FC<{label: string; screen: string}> = ({
label,
screen,
}) => {
const route = useRoute()
const Link = <></> // TODO
return (
<View>
<Pressable
@ -18,7 +16,7 @@ export const NavItem: React.FC<{label: string; screen: string}> = ({
<Link
style={[
styles.navItemLink,
route.name === screen && styles.navItemLinkSelected,
false /* TODO route.name === screen*/ && styles.navItemLinkSelected,
]}
to={{screen, params: {}}}>
{label}