From e2c1fec85ff9799cea1c5789635cf9837288d5b9 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 6 Apr 2026 07:13:26 -0500 Subject: [PATCH] Fix it, android position is still off --- package.json | 4 +- src/components/Composer/index.tsx | 84 ++++++++++++++++--------------- yarn.lock | 16 +++--- 3 files changed, 53 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index ecf8495d94..9b0bcd6de5 100644 --- a/package.json +++ b/package.json @@ -88,8 +88,8 @@ "@bsky.app/expo-image-crop-tool": "^0.5.0", "@bsky.app/expo-translate-text": "^0.2.9", "@bsky.app/react-native-mmkv": "2.12.5", - "@bsky.app/sift": "^0.2.9", - "@bsky.app/tapper": "^0.4.2", + "@bsky.app/sift": "^0.2.11", + "@bsky.app/tapper": "^0.4.3", "@discord/bottom-sheet": "bluesky-social/react-native-bottom-sheet", "@emoji-mart/data": "^1.2.1", "@emoji-mart/react": "^1.1.1", diff --git a/src/components/Composer/index.tsx b/src/components/Composer/index.tsx index ab97f88065..91095c990e 100644 --- a/src/components/Composer/index.tsx +++ b/src/components/Composer/index.tsx @@ -150,6 +150,7 @@ export function Composer({ placement: autocompletePlacement, dynamicWidth: IS_WEB, insets, + anchorRef: autocompleteAnchorRef, }) /* @@ -178,12 +179,6 @@ export function Composer({ [tapper.input, tapper.insert, inputScrollSharedValue], ) - useEffect(() => { - if (autocompleteAnchorRef) { - sift.refs.setAnchor(autocompleteAnchorRef.current) - } - }, [sift.refs]) - /* * Skip the initial mount to avoid an unnecessary re-render — the parent * already knows the initial value since it passed `initialText`. @@ -294,42 +289,48 @@ export function Composer({ useOnKeyboard('keyboardDidShow', updateAutocompletePosition) useOnKeyboard('keyboardDidHide', updateAutocompletePosition) + const textContent = ( + + {tapper.state.nodes.map((node, i) => { + switch (node.type) { + case 'text': + return {node.value} + case 'trigger': + case 'facet': + return ( + + {node.raw} + + ) + } + })} + + ) + return ( <> - - - - {tapper.state.nodes.map((node, i) => { - switch (node.type) { - case 'text': - return {node.value} - case 'trigger': - case 'facet': - return ( - - {node.raw} - - ) - } - })} - - - + {IS_WEB && ( + + + {textContent} + + + )} { isComposing.current = false }} - onUpdateHeight={updateAutocompletePosition} - /> + onUpdateHeight={updateAutocompletePosition}> + {IS_WEB ? null : textContent} + {activeFacet && activeFacet.type !== 'url' && ( diff --git a/yarn.lock b/yarn.lock index 8255b66f06..d4dc66636e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2413,15 +2413,15 @@ resolved "https://registry.yarnpkg.com/@bsky.app/react-native-mmkv/-/react-native-mmkv-2.12.5.tgz#eb17d31a6158c74393f617a1763ac223ff3f83a6" integrity sha512-3vUz1nQY1DiKIPAWRkpp5ZGxH5f2G6Ui0UuQuEYjYv81xx1qFcSzS9KQ2sHcOKYdkOM9amWV2Q8TQCxt1lrAHg== -"@bsky.app/sift@^0.2.9": - version "0.2.9" - resolved "https://registry.yarnpkg.com/@bsky.app/sift/-/sift-0.2.9.tgz#517710b850551846482e68c201750d1dfd549792" - integrity sha512-6eQzQ+xKkc0HcGzs96HaadKx+YfaCQwWO52S5VReyxuSii4Xz+bFZ4pjtHnH0NU/lB9W3llMLmjrV+Y5hGozhA== +"@bsky.app/sift@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@bsky.app/sift/-/sift-0.2.11.tgz#ea5f7b3eaa6314b6eab331fba966f5ada6744d00" + integrity sha512-aQMNwZ78ot4oYMtLPVGOaPn7DQ1y+MeVKRXqLP0dfGNDgw/BKWIaTi/73IcIeM7x41/2J1ncIGKUbAj1vzIoLQ== -"@bsky.app/tapper@^0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@bsky.app/tapper/-/tapper-0.4.2.tgz#a01355f87bb17c4767cb66930a9d1e65904b298a" - integrity sha512-64+EI5zzIFAMnLFlHFRuS0L26ANCLnMQS1Q4GszOo6/vhWko6opQA0yYowizEFHCQ73uiquaup2Oc8m7pDSxTA== +"@bsky.app/tapper@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@bsky.app/tapper/-/tapper-0.4.3.tgz#969e3bc33dfd5221d8b74ee9c854e554c51e6db0" + integrity sha512-7nW0EW/SBycX6EpSLYgHNjJd22gGGnutv3hyRKpS0rS9mt9Jtm8qhgkTxpajS338au/KiQRRQGUo8rqdAn7Lfw== "@crowdin/cli@^4.14.1": version "4.14.1"