diff options
Diffstat (limited to 'src/view/com/util/post-ctrls')
-rw-r--r-- | src/view/com/util/post-ctrls/PostCtrls.tsx | 5 | ||||
-rw-r--r-- | src/view/com/util/post-ctrls/RepostButton.tsx | 29 | ||||
-rw-r--r-- | src/view/com/util/post-ctrls/RepostButton.web.tsx | 15 |
3 files changed, 43 insertions, 6 deletions
diff --git a/src/view/com/util/post-ctrls/PostCtrls.tsx b/src/view/com/util/post-ctrls/PostCtrls.tsx index ad5863846..0cfa3fc4d 100644 --- a/src/view/com/util/post-ctrls/PostCtrls.tsx +++ b/src/view/com/util/post-ctrls/PostCtrls.tsx @@ -10,6 +10,7 @@ import * as Clipboard from 'expo-clipboard' import { AppBskyFeedDefs, AppBskyFeedPost, + AppBskyFeedThreadgate, AtUri, RichText as RichTextAPI, } from '@atproto/api' @@ -60,6 +61,7 @@ let PostCtrls = ({ onPressReply, onPostReply, logContext, + threadgateRecord, }: { big?: boolean post: Shadow<AppBskyFeedDefs.PostView> @@ -70,6 +72,7 @@ let PostCtrls = ({ onPressReply: () => void onPostReply?: (postUri: string | undefined) => void logContext: 'FeedItem' | 'PostThreadItem' | 'Post' + threadgateRecord?: AppBskyFeedThreadgate.Record }): React.ReactNode => { const t = useTheme() const {_} = useLingui() @@ -256,6 +259,7 @@ let PostCtrls = ({ onRepost={onRepost} onQuote={onQuote} big={big} + embeddingDisabled={Boolean(post.viewer?.embeddingDisabled)} /> </View> <View style={big ? a.align_center : [a.flex_1, a.align_start]}> @@ -344,6 +348,7 @@ let PostCtrls = ({ style={{padding: 5}} hitSlop={POST_CTRL_HITSLOP} timestamp={post.indexedAt} + threadgateRecord={threadgateRecord} /> </View> {gate('debug_show_feedcontext') && feedContext && ( diff --git a/src/view/com/util/post-ctrls/RepostButton.tsx b/src/view/com/util/post-ctrls/RepostButton.tsx index d49cda442..5994b7ef6 100644 --- a/src/view/com/util/post-ctrls/RepostButton.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.tsx @@ -20,6 +20,7 @@ interface Props { onRepost: () => void onQuote: () => void big?: boolean + embeddingDisabled: boolean } let RepostButton = ({ @@ -28,6 +29,7 @@ let RepostButton = ({ onRepost, onQuote, big, + embeddingDisabled, }: Props): React.ReactNode => { const t = useTheme() const {_} = useLingui() @@ -111,9 +113,14 @@ let RepostButton = ({ </Text> </Button> <Button + disabled={embeddingDisabled} testID="quoteBtn" style={[a.justify_start, a.px_md]} - label={_(msg`Quote post`)} + label={ + embeddingDisabled + ? _(msg`Quote posts disabled`) + : _(msg`Quote post`) + } onPress={() => { playHaptic() dialogControl.close(() => { @@ -123,9 +130,23 @@ let RepostButton = ({ size="large" variant="ghost" color="primary"> - <Quote size="lg" fill={t.palette.primary_500} /> - <Text style={[a.font_bold, a.text_xl]}> - {_(msg`Quote post`)} + <Quote + size="lg" + fill={ + embeddingDisabled + ? t.atoms.text_contrast_low.color + : t.palette.primary_500 + } + /> + <Text + style={[ + a.font_bold, + a.text_xl, + embeddingDisabled && t.atoms.text_contrast_low, + ]}> + {embeddingDisabled + ? _(msg`Quote posts disabled`) + : _(msg`Quote post`)} </Text> </Button> </View> diff --git a/src/view/com/util/post-ctrls/RepostButton.web.tsx b/src/view/com/util/post-ctrls/RepostButton.web.tsx index 17ab736ce..9a8776b9c 100644 --- a/src/view/com/util/post-ctrls/RepostButton.web.tsx +++ b/src/view/com/util/post-ctrls/RepostButton.web.tsx @@ -20,6 +20,7 @@ interface Props { onRepost: () => void onQuote: () => void big?: boolean + embeddingDisabled: boolean } export const RepostButton = ({ @@ -28,6 +29,7 @@ export const RepostButton = ({ onRepost, onQuote, big, + embeddingDisabled, }: Props) => { const t = useTheme() const {_} = useLingui() @@ -76,10 +78,19 @@ export const RepostButton = ({ <Menu.ItemIcon icon={Repost} position="right" /> </Menu.Item> <Menu.Item - label={_(msg`Quote post`)} + disabled={embeddingDisabled} + label={ + embeddingDisabled + ? _(msg`Quote posts disabled`) + : _(msg`Quote post`) + } testID="repostDropdownQuoteBtn" onPress={onQuote}> - <Menu.ItemText>{_(msg`Quote post`)}</Menu.ItemText> + <Menu.ItemText> + {embeddingDisabled + ? _(msg`Quote posts disabled`) + : _(msg`Quote post`)} + </Menu.ItemText> <Menu.ItemIcon icon={Quote} position="right" /> </Menu.Item> </Menu.Outer> |