about summary refs log tree commit diff
path: root/src/view/screens/PostThread.tsx
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2022-08-31 14:36:50 -0500
committerGitHub <noreply@github.com>2022-08-31 14:36:50 -0500
commit97f52b6a03ab36dcbf21256cc0137b550b10f174 (patch)
treec632b69f038d33ea82c3378451f72177dc136cfe /src/view/screens/PostThread.tsx
parentd1470bad6628022eda66c658d228cc7646abc746 (diff)
downloadvoidsky-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/screens/PostThread.tsx')
-rw-r--r--src/view/screens/PostThread.tsx32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx
new file mode 100644
index 000000000..1003a40e1
--- /dev/null
+++ b/src/view/screens/PostThread.tsx
@@ -0,0 +1,32 @@
+import React, {useEffect, useLayoutEffect} from 'react'
+import {TouchableOpacity} from 'react-native'
+import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
+import {makeRecordUri} from '../lib/strings'
+import {PostThread as PostThreadComponent} from '../com/post-thread/PostThread'
+import {ScreenParams} from '../routes'
+import {useStores} from '../../state'
+import {useLoadEffect} from '../lib/navigation'
+
+export const PostThread = ({params}: ScreenParams) => {
+  const store = useStores()
+  const {name, recordKey} = params
+  const uri = makeRecordUri(name, 'blueskyweb.xyz:Posts', recordKey)
+  useLoadEffect(() => {
+    store.nav.setTitle(`Post by ${name}`)
+  }, [store.nav, name])
+
+  // TODO
+  // useLayoutEffect(() => {
+  //   navigation.setOptions({
+  //     headerShown: true,
+  //     headerTitle: 'Thread',
+  //     headerLeft: () => (
+  //       <TouchableOpacity onPress={() => navigation.goBack()}>
+  //         <FontAwesomeIcon icon="arrow-left" />
+  //       </TouchableOpacity>
+  //     ),
+  //   })
+  // }, [navigation])
+
+  return <PostThreadComponent uri={uri} />
+}