diff options
Diffstat (limited to 'src/view/com/util/PostCtrls.tsx')
-rw-r--r-- | src/view/com/util/PostCtrls.tsx | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/view/com/util/PostCtrls.tsx b/src/view/com/util/PostCtrls.tsx index e42c5e63b..cb4dfab26 100644 --- a/src/view/com/util/PostCtrls.tsx +++ b/src/view/com/util/PostCtrls.tsx @@ -26,6 +26,7 @@ import { } from 'lib/icons' import {s, colors} from 'lib/styles' import {useTheme} from 'lib/ThemeContext' +import {useStores} from 'state/index' interface PostCtrlsOpts { itemUri: string @@ -33,6 +34,13 @@ interface PostCtrlsOpts { itemHref: string itemTitle: string isAuthor: boolean + author: { + handle: string + displayName: string + avatar: string + } + text: string + indexedAt: string big?: boolean style?: StyleProp<ViewStyle> replyCount?: number @@ -86,6 +94,7 @@ function ctrlAnimStyle(interp: Animated.Value) { */ export function PostCtrls(opts: PostCtrlsOpts) { + const store = useStores() const theme = useTheme() const defaultCtrlColor = React.useMemo( () => ({ @@ -98,7 +107,8 @@ export function PostCtrls(opts: PostCtrlsOpts) { // DISABLED see #135 // const repostRef = React.useRef<TriggerableAnimatedRef | null>(null) // const likeRef = React.useRef<TriggerableAnimatedRef | null>(null) - const onPressToggleRepostWrapper = () => { + const onRepost = () => { + store.shell.closeModal() if (!opts.isReposted) { ReactNativeHapticFeedback.trigger('impactMedium') setRepostMod(1) @@ -122,6 +132,30 @@ export function PostCtrls(opts: PostCtrlsOpts) { .then(() => setRepostMod(0)) } } + + const onQuote = () => { + store.shell.closeModal() + store.shell.openComposer({ + quote: { + uri: opts.itemUri, + cid: opts.itemCid, + text: opts.text, + author: opts.author, + indexedAt: opts.indexedAt, + }, + }) + ReactNativeHapticFeedback.trigger('impactMedium') + } + + const onPressToggleRepostWrapper = () => { + store.shell.openModal({ + name: 'repost', + onRepost: onRepost, + onQuote: onQuote, + isReposted: opts.isReposted, + }) + } + const onPressToggleUpvoteWrapper = () => { if (!opts.isUpvoted) { ReactNativeHapticFeedback.trigger('impactMedium') |