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

@ -9,7 +9,6 @@ import {
TouchableOpacity,
View,
} from 'react-native'
import {OnNavigateContent} from '../../routes/types'
import {ProfileViewModel} from '../../../state/models/profile-view'
import {useStores} from '../../../state'
import {pluralize} from '../../lib/strings'
@ -19,10 +18,8 @@ import Toast from '../util/Toast'
export const ProfileHeader = observer(function ProfileHeader({
user,
onNavigateContent,
}: {
user: string
onNavigateContent: OnNavigateContent
}) {
const store = useStores()
const [view, setView] = useState<ProfileViewModel | undefined>()
@ -55,10 +52,10 @@ export const ProfileHeader = observer(function ProfileHeader({
)
}
const onPressFollowers = () => {
onNavigateContent('ProfileFollowers', {name: user})
store.nav.navigate(`/profile/${user}/followers`)
}
const onPressFollows = () => {
onNavigateContent('ProfileFollows', {name: user})
store.nav.navigate(`/profile/${user}/follows`)
}
// loading