diff options
author | Samuel Newman <mozzius@protonmail.com> | 2025-05-06 17:34:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-05-06 07:34:50 -0700 |
commit | 25f8506c4152840e83ba9210452b60ea5cc0987f (patch) | |
tree | c319b601601b43fc6c0d2b464f1bd260ebcda481 /src/view/com/util/forms | |
parent | 04dc6dc9ca3cdc747004367982313fd8bc157507 (diff) | |
download | voidsky-25f8506c4152840e83ba9210452b60ea5cc0987f.tar.zst |
Remove post from feed after pressing show less (#8333)
* remove post from feed after pressing show less * fix text overflow on android * move state up so it won't get recycled away * make type optional
Diffstat (limited to 'src/view/com/util/forms')
-rw-r--r-- | src/view/com/util/forms/PostDropdownBtn.tsx | 16 | ||||
-rw-r--r-- | src/view/com/util/forms/PostDropdownBtnMenuItems.tsx | 13 |
2 files changed, 21 insertions, 8 deletions
diff --git a/src/view/com/util/forms/PostDropdownBtn.tsx b/src/view/com/util/forms/PostDropdownBtn.tsx index fd577605a..c50b36640 100644 --- a/src/view/com/util/forms/PostDropdownBtn.tsx +++ b/src/view/com/util/forms/PostDropdownBtn.tsx @@ -1,4 +1,4 @@ -import React, {memo, useMemo, useState} from 'react' +import {memo, useMemo, useState} from 'react' import { Pressable, type PressableProps, @@ -6,16 +6,17 @@ import { type ViewStyle, } from 'react-native' import { - AppBskyFeedDefs, - AppBskyFeedPost, - AppBskyFeedThreadgate, - RichText as RichTextAPI, + type AppBskyFeedDefs, + type AppBskyFeedPost, + type AppBskyFeedThreadgate, + type RichText as RichTextAPI, } from '@atproto/api' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' +import type React from 'react' import {useTheme} from '#/lib/ThemeContext' -import {Shadow} from '#/state/cache/post-shadow' +import {type Shadow} from '#/state/cache/post-shadow' import {atoms as a, useTheme as useAlf} from '#/alf' import {DotGrid_Stroke2_Corner0_Rounded as DotsHorizontal} from '#/components/icons/DotGrid' import {useMenuControl} from '#/components/Menu' @@ -34,6 +35,7 @@ let PostDropdownBtn = ({ size, timestamp, threadgateRecord, + onShowLess, }: { testID: string post: Shadow<AppBskyFeedDefs.PostView> @@ -45,6 +47,7 @@ let PostDropdownBtn = ({ size?: 'lg' | 'md' | 'sm' timestamp: string threadgateRecord?: AppBskyFeedThreadgate.Record + onShowLess?: (interaction: AppBskyFeedDefs.Interaction) => void }): React.ReactNode => { const theme = useTheme() const alf = useAlf() @@ -100,6 +103,7 @@ let PostDropdownBtn = ({ richText={richText} timestamp={timestamp} threadgateRecord={threadgateRecord} + onShowLess={onShowLess} /> )} </Menu.Root> diff --git a/src/view/com/util/forms/PostDropdownBtnMenuItems.tsx b/src/view/com/util/forms/PostDropdownBtnMenuItems.tsx index e50a2d3e4..9c3d709d9 100644 --- a/src/view/com/util/forms/PostDropdownBtnMenuItems.tsx +++ b/src/view/com/util/forms/PostDropdownBtnMenuItems.tsx @@ -101,6 +101,7 @@ let PostDropdownMenuItems = ({ richText, timestamp, threadgateRecord, + onShowLess, }: { testID: string post: Shadow<AppBskyFeedDefs.PostView> @@ -112,6 +113,7 @@ let PostDropdownMenuItems = ({ size?: 'lg' | 'md' | 'sm' timestamp: string threadgateRecord?: AppBskyFeedThreadgate.Record + onShowLess?: (interaction: AppBskyFeedDefs.Interaction) => void }): React.ReactNode => { const {hasSession, currentAccount} = useSession() const {gtMobile} = useBreakpoints() @@ -303,8 +305,15 @@ let PostDropdownMenuItems = ({ item: postUri, feedContext: postFeedContext, }) - Toast.show(_(msg({message: 'Feedback sent!', context: 'toast'}))) - }, [feedFeedback, postUri, postFeedContext, _]) + if (onShowLess) { + onShowLess({ + item: postUri, + feedContext: postFeedContext, + }) + } else { + Toast.show(_(msg({message: 'Feedback sent!', context: 'toast'}))) + } + }, [feedFeedback, postUri, postFeedContext, _, onShowLess]) const onSelectChatToShareTo = React.useCallback( (conversation: string) => { |