diff options
Diffstat (limited to 'src/view/screens/content')
-rw-r--r-- | src/view/screens/content/PostLikedBy.tsx | 38 | ||||
-rw-r--r-- | src/view/screens/content/PostRepostedBy.tsx | 41 | ||||
-rw-r--r-- | src/view/screens/content/PostThread.tsx | 9 |
3 files changed, 81 insertions, 7 deletions
diff --git a/src/view/screens/content/PostLikedBy.tsx b/src/view/screens/content/PostLikedBy.tsx new file mode 100644 index 000000000..f12990141 --- /dev/null +++ b/src/view/screens/content/PostLikedBy.tsx @@ -0,0 +1,38 @@ +import React, {useLayoutEffect} from 'react' +import {TouchableOpacity} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {makeRecordUri} from '../../lib/strings' +import {Shell} from '../../shell' +import type {RootTabsScreenProps} from '../../routes/types' +import {PostLikedBy as PostLikedByComponent} from '../../com/post-thread/PostLikedBy' + +export const PostLikedBy = ({ + navigation, + route, +}: RootTabsScreenProps<'PostLikedBy'>) => { + const {name, recordKey} = route.params + const uri = makeRecordUri(name, 'blueskyweb.xyz:Posts', recordKey) + + useLayoutEffect(() => { + navigation.setOptions({ + headerShown: true, + headerTitle: 'Liked By', + headerLeft: () => ( + <TouchableOpacity onPress={() => navigation.goBack()}> + <FontAwesomeIcon icon="arrow-left" /> + </TouchableOpacity> + ), + }) + }, [navigation]) + + const onNavigateContent = (screen: string, props: Record<string, string>) => { + // @ts-ignore it's up to the callers to supply correct params -prf + navigation.push(screen, props) + } + + return ( + <Shell> + <PostLikedByComponent uri={uri} onNavigateContent={onNavigateContent} /> + </Shell> + ) +} diff --git a/src/view/screens/content/PostRepostedBy.tsx b/src/view/screens/content/PostRepostedBy.tsx new file mode 100644 index 000000000..000c1a7fc --- /dev/null +++ b/src/view/screens/content/PostRepostedBy.tsx @@ -0,0 +1,41 @@ +import React, {useLayoutEffect} from 'react' +import {TouchableOpacity} from 'react-native' +import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {makeRecordUri} from '../../lib/strings' +import {Shell} from '../../shell' +import type {RootTabsScreenProps} from '../../routes/types' +import {PostRepostedBy as PostRepostedByComponent} from '../../com/post-thread/PostRepostedBy' + +export const PostRepostedBy = ({ + navigation, + route, +}: RootTabsScreenProps<'PostRepostedBy'>) => { + const {name, recordKey} = route.params + const uri = makeRecordUri(name, 'blueskyweb.xyz:Posts', recordKey) + + useLayoutEffect(() => { + navigation.setOptions({ + headerShown: true, + headerTitle: 'Reposted By', + headerLeft: () => ( + <TouchableOpacity onPress={() => navigation.goBack()}> + <FontAwesomeIcon icon="arrow-left" /> + </TouchableOpacity> + ), + }) + }, [navigation]) + + const onNavigateContent = (screen: string, props: Record<string, string>) => { + // @ts-ignore it's up to the callers to supply correct params -prf + navigation.push(screen, props) + } + + return ( + <Shell> + <PostRepostedByComponent + uri={uri} + onNavigateContent={onNavigateContent} + /> + </Shell> + ) +} diff --git a/src/view/screens/content/PostThread.tsx b/src/view/screens/content/PostThread.tsx index fde74e778..485a2e49a 100644 --- a/src/view/screens/content/PostThread.tsx +++ b/src/view/screens/content/PostThread.tsx @@ -1,7 +1,7 @@ import React, {useLayoutEffect} from 'react' import {TouchableOpacity} from 'react-native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' -import {AdxUri} from '@adxp/mock-api' +import {makeRecordUri} from '../../lib/strings' import {Shell} from '../../shell' import type {RootTabsScreenProps} from '../../routes/types' import {PostThread as PostThreadComponent} from '../../com/post-thread/PostThread' @@ -11,12 +11,7 @@ export const PostThread = ({ route, }: RootTabsScreenProps<'PostThread'>) => { const {name, recordKey} = route.params - - const urip = new AdxUri(`adx://todo/`) - urip.host = name - urip.collection = 'blueskyweb.xyz:Posts' - urip.recordKey = recordKey - const uri = urip.toString() + const uri = makeRecordUri(name, 'blueskyweb.xyz:Posts', recordKey) useLayoutEffect(() => { navigation.setOptions({ |