From df20ae237eaf434c6ed0fd032f8328cd9b8c352c Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 26 Aug 2025 09:54:19 -0500 Subject: Threads v2 cleanup (#8902) * Delete root PostThread component * Remove PostThreadItem, migrate DebugMod to use new components * Remove other unused components * Move PostThreadFollowBtn to new home * Move PostThreadComposePrompt to new home * Remove gate * Keep naming in DebugMod * rm v1 prefs --------- Co-authored-by: Samuel Newman --- .../PostThread/components/ThreadComposePrompt.tsx | 95 ++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 src/screens/PostThread/components/ThreadComposePrompt.tsx (limited to 'src/screens/PostThread/components/ThreadComposePrompt.tsx') diff --git a/src/screens/PostThread/components/ThreadComposePrompt.tsx b/src/screens/PostThread/components/ThreadComposePrompt.tsx new file mode 100644 index 000000000..e12c7e766 --- /dev/null +++ b/src/screens/PostThread/components/ThreadComposePrompt.tsx @@ -0,0 +1,95 @@ +import {type StyleProp, View, type ViewStyle} from 'react-native' +import {LinearGradient} from 'expo-linear-gradient' +import {msg, Trans} from '@lingui/macro' +import {useLingui} from '@lingui/react' + +import {PressableScale} from '#/lib/custom-animations/PressableScale' +import {useHaptics} from '#/lib/haptics' +import {useHideBottomBarBorderForScreen} from '#/lib/hooks/useHideBottomBarBorder' +import {useProfileQuery} from '#/state/queries/profile' +import {useSession} from '#/state/session' +import {UserAvatar} from '#/view/com/util/UserAvatar' +import {atoms as a, ios, native, useBreakpoints, useTheme} from '#/alf' +import {transparentifyColor} from '#/alf/util/colorGeneration' +import {useInteractionState} from '#/components/hooks/useInteractionState' +import {Text} from '#/components/Typography' + +export function ThreadComposePrompt({ + onPressCompose, + style, +}: { + onPressCompose: () => void + style?: StyleProp +}) { + const {currentAccount} = useSession() + const {data: profile} = useProfileQuery({did: currentAccount?.did}) + const {_} = useLingui() + const {gtMobile} = useBreakpoints() + const t = useTheme() + const playHaptic = useHaptics() + const { + state: hovered, + onIn: onHoverIn, + onOut: onHoverOut, + } = useInteractionState() + + useHideBottomBarBorderForScreen() + + return ( + + {!gtMobile && ( + + )} + { + onPressCompose() + playHaptic('Light') + }} + onLongPress={ios(() => { + onPressCompose() + playHaptic('Heavy') + })} + onHoverIn={onHoverIn} + onHoverOut={onHoverOut} + style={[ + a.flex_row, + a.align_center, + a.p_sm, + a.gap_sm, + a.rounded_full, + (!gtMobile || hovered) && t.atoms.bg_contrast_25, + native([a.border, t.atoms.border_contrast_low]), + a.transition_color, + ]}> + + + Write your reply + + + + ) +} -- cgit 1.4.1