about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/view/com/util/post-ctrls/PostCtrls.tsx10
-rw-r--r--src/view/com/util/post-ctrls/RepostButton.tsx10
2 files changed, 8 insertions, 12 deletions
diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx
index c90a723a0..d42590e90 100644
--- a/src/view/com/util/post-ctrls/PostCtrls.tsx
+++ b/src/view/com/util/post-ctrls/PostCtrls.tsx
@@ -23,7 +23,6 @@ import {toShareUrl} from '#/lib/strings/url-helpers'
 import {s} from '#/lib/styles'
 import {Shadow} from '#/state/cache/types'
 import {useFeedFeedbackContext} from '#/state/feed-feedback'
-import {useModalControls} from '#/state/modals'
 import {
   usePostLikeMutationQueue,
   usePostRepostMutationQueue,
@@ -65,7 +64,6 @@ let PostCtrls = ({
   const t = useTheme()
   const {_} = useLingui()
   const {openComposer} = useComposerControls()
-  const {closeModal} = useModalControls()
   const [queueLike, queueUnlike] = usePostLikeMutationQueue(post, logContext)
   const [queueRepost, queueUnrepost] = usePostRepostMutationQueue(
     post,
@@ -118,10 +116,8 @@ let PostCtrls = ({
   ])
 
   const onRepost = useCallback(async () => {
-    closeModal()
     try {
       if (!post.viewer?.repost) {
-        playHaptic()
         sendInteraction({
           item: post.uri,
           event: 'app.bsky.feed.defs#interactionRepost',
@@ -137,10 +133,8 @@ let PostCtrls = ({
       }
     }
   }, [
-    closeModal,
     post.uri,
     post.viewer?.repost,
-    playHaptic,
     queueRepost,
     queueUnrepost,
     sendInteraction,
@@ -148,7 +142,6 @@ let PostCtrls = ({
   ])
 
   const onQuote = useCallback(() => {
-    closeModal()
     sendInteraction({
       item: post.uri,
       event: 'app.bsky.feed.defs#interactionQuote',
@@ -163,16 +156,13 @@ let PostCtrls = ({
         indexedAt: post.indexedAt,
       },
     })
-    playHaptic()
   }, [
-    closeModal,
     openComposer,
     post.uri,
     post.cid,
     post.author,
     post.indexedAt,
     record.text,
-    playHaptic,
     sendInteraction,
     feedContext,
   ])
diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx
index ebf3357f3..b1fe73d5b 100644
--- a/src/view/com/util/post-ctrls/RepostButton.tsx
+++ b/src/view/com/util/post-ctrls/RepostButton.tsx
@@ -3,6 +3,7 @@ import {View} from 'react-native'
 import {msg, plural} from '@lingui/macro'
 import {useLingui} from '@lingui/react'
 
+import {useHaptics} from '#/lib/haptics'
 import {useRequireAuth} from '#/state/session'
 import {atoms as a, useTheme} from '#/alf'
 import {Button, ButtonText} from '#/components/Button'
@@ -30,6 +31,7 @@ let RepostButton = ({
   const {_} = useLingui()
   const requireAuth = useRequireAuth()
   const dialogControl = Dialog.useDialogControl()
+  const playHaptic = useHaptics()
 
   const color = React.useMemo(
     () => ({
@@ -89,8 +91,11 @@ let RepostButton = ({
                     : _(msg({message: `Repost`, context: 'action'}))
                 }
                 onPress={() => {
-                  dialogControl.close()
-                  onRepost()
+                  if (!isReposted) playHaptic()
+
+                  dialogControl.close(() => {
+                    onRepost()
+                  })
                 }}
                 size="large"
                 variant="ghost"
@@ -106,6 +111,7 @@ let RepostButton = ({
                 style={[a.justify_start, a.px_md]}
                 label={_(msg`Quote post`)}
                 onPress={() => {
+                  playHaptic()
                   dialogControl.close(() => {
                     onQuote()
                   })