import {Pressable, ScrollView, StyleSheet, View} from 'react-native' import {msg, Trans} from '@lingui/macro' import {useLingui} from '@lingui/react' import {createHitslop, HITSLOP_10} from '#/lib/constants' import {makeProfileLink} from '#/lib/routes/links' import {sanitizeDisplayName} from '#/lib/strings/display-names' import {Link} from '#/view/com/util/Link' import {UserAvatar} from '#/view/com/util/UserAvatar' import {BlockDrawerGesture} from '#/view/shell/BlockDrawerGesture' import {atoms as a, tokens, useBreakpoints, useTheme} from '#/alf' import {Button, ButtonIcon} from '#/components/Button' import {TimesLarge_Stroke2_Corner0_Rounded as XIcon} from '#/components/icons/Times' import * as Layout from '#/components/Layout' import {Text} from '#/components/Typography' import type * as bsky from '#/types/bsky' export function SearchHistory({ searchHistory, selectedProfiles, onItemClick, onProfileClick, onRemoveItemClick, onRemoveProfileClick, }: { searchHistory: string[] selectedProfiles: bsky.profile.AnyProfileView[] onItemClick: (item: string) => void onProfileClick: (profile: bsky.profile.AnyProfileView) => void onRemoveItemClick: (item: string) => void onRemoveProfileClick: (profile: bsky.profile.AnyProfileView) => void }) { const {gtMobile} = useBreakpoints() const t = useTheme() const {_} = useLingui() return ( {(searchHistory.length > 0 || selectedProfiles.length > 0) && ( Recent Searches )} {selectedProfiles.length > 0 && ( {selectedProfiles.slice(0, 5).map((profile, index) => ( onProfileClick(profile)} style={[a.align_center, a.w_full]}> {sanitizeDisplayName( profile.displayName || profile.handle, )} onRemoveProfileClick(profile)} hitSlop={createHitslop(6)} style={styles.profileRemoveBtn}> ))} )} {searchHistory.length > 0 && ( {searchHistory.slice(0, 5).map((historyItem, index) => ( onItemClick(historyItem)} hitSlop={HITSLOP_10} style={[a.flex_1, a.py_md]}> {historyItem} ))} )} ) } const styles = StyleSheet.create({ selectedProfilesContainer: { marginTop: 10, paddingHorizontal: 12, height: 80, }, selectedProfilesContainerMobile: { height: 100, }, profileItem: { alignItems: 'center', marginRight: 15, width: 78, }, profileItemMobile: { width: 70, }, profileName: { width: 78, marginTop: 6, }, profileRemoveBtn: { position: 'absolute', top: 0, right: 5, backgroundColor: 'white', borderRadius: 10, width: 18, height: 18, alignItems: 'center', justifyContent: 'center', }, })