From 97f52b6a03ab36dcbf21256cc0137b550b10f174 Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Wed, 31 Aug 2022 14:36:50 -0500 Subject: 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 --- src/view/com/post-thread/PostThread.tsx | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) (limited to 'src/view/com/post-thread/PostThread.tsx') diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx index 6191875c7..f7044b741 100644 --- a/src/view/com/post-thread/PostThread.tsx +++ b/src/view/com/post-thread/PostThread.tsx @@ -1,8 +1,6 @@ import React, {useState, useEffect, useRef} from 'react' import {observer} from 'mobx-react-lite' import {ActivityIndicator, FlatList, Text, View} from 'react-native' -import {useFocusEffect} from '@react-navigation/native' -import {OnNavigateContent} from '../../routes/types' import { PostThreadViewModel, PostThreadViewPostModel, @@ -14,13 +12,7 @@ import {s} from '../../lib/styles' const UPDATE_DELAY = 2e3 // wait 2s before refetching the thread for updates -export const PostThread = observer(function PostThread({ - uri, - onNavigateContent, -}: { - uri: string - onNavigateContent: OnNavigateContent -}) { +export const PostThread = observer(function PostThread({uri}: {uri: string}) { const store = useStores() const [view, setView] = useState() const [lastUpdate, setLastUpdate] = useState(Date.now()) @@ -37,12 +29,13 @@ export const PostThread = observer(function PostThread({ newView.setup().catch(err => console.error('Failed to fetch thread', err)) }, [uri, view?.params.uri, store]) - useFocusEffect(() => { - if (Date.now() - lastUpdate > UPDATE_DELAY) { - view?.update() - setLastUpdate(Date.now()) - } - }) + // TODO + // useFocusEffect(() => { + // if (Date.now() - lastUpdate > UPDATE_DELAY) { + // view?.update() + // setLastUpdate(Date.now()) + // } + // }) const onPressShare = (uri: string) => { shareSheetRef.current?.open(uri) @@ -79,11 +72,7 @@ export const PostThread = observer(function PostThread({ // = const posts = view.thread ? Array.from(flattenThread(view.thread)) : [] const renderItem = ({item}: {item: PostThreadViewPostModel}) => ( - + ) return ( -- cgit 1.4.1