diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-11-21 22:32:32 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-21 22:32:32 +0000 |
commit | 9f1e648686498ad6ec68a7c4487b1090f8e74f89 (patch) | |
tree | a552bb53ec8bd63453d060f805067354874aa1b5 /src/view/com/composer/text-input/web/Autocomplete.tsx | |
parent | f67e00a85c61ae8be65afda3fe75e7eaac1c2ffa (diff) | |
download | voidsky-9f1e648686498ad6ec68a7c4487b1090f8e74f89.tar.zst |
Fix overflow issue on iOS autocomplete, among other things (#6611)
* stop using ref in render * fix display name fallback on web * use unicode ellipsis for useGrapheme * fix overflow issue * sanitize handle/displayname on web
Diffstat (limited to 'src/view/com/composer/text-input/web/Autocomplete.tsx')
-rw-r--r-- | src/view/com/composer/text-input/web/Autocomplete.tsx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/view/com/composer/text-input/web/Autocomplete.tsx b/src/view/com/composer/text-input/web/Autocomplete.tsx index 0599ddb39..f40c2ee8d 100644 --- a/src/view/com/composer/text-input/web/Autocomplete.tsx +++ b/src/view/com/composer/text-input/web/Autocomplete.tsx @@ -10,6 +10,8 @@ import { import tippy, {Instance as TippyInstance} from 'tippy.js' import {usePalette} from '#/lib/hooks/usePalette' +import {sanitizeDisplayName} from '#/lib/strings/display-names' +import {sanitizeHandle} from '#/lib/strings/handles' import {ActorAutocompleteFn} from '#/state/queries/actor-autocomplete' import {Text} from '#/view/com/util/text/Text' import {UserAvatar} from '#/view/com/util/UserAvatar' @@ -148,7 +150,9 @@ const MentionList = forwardRef<MentionListRef, SuggestionProps>( {items.length > 0 ? ( items.map((item, index) => { const {name: displayName} = getGraphemeString( - item.displayName ?? item.handle, + sanitizeDisplayName( + item.displayName || sanitizeHandle(item.handle), + ), 30, // Heuristic value; can be modified ) const isSelected = selectedIndex === index @@ -181,7 +185,7 @@ const MentionList = forwardRef<MentionListRef, SuggestionProps>( </Text> </View> <Text type="xs" style={pal.textLight} numberOfLines={1}> - @{item.handle} + {sanitizeHandle(item.handle, '@')} </Text> </Pressable> ) |