Fix emoji reaction expanded picker on web getting squished (#8245)
* ensure expanded emoji picker doesn't get squished * reset expanded state on close
This commit is contained in:
@@ -33,9 +33,7 @@ export function EmojiReactionPicker({
|
|||||||
return (
|
return (
|
||||||
<Menu.Root>
|
<Menu.Root>
|
||||||
<Menu.Trigger label={_(msg`Add emoji reaction`)}>{children}</Menu.Trigger>
|
<Menu.Trigger label={_(msg`Add emoji reaction`)}>{children}</Menu.Trigger>
|
||||||
<Menu.Outer>
|
<MenuInner message={message} onEmojiSelect={onEmojiSelect} />
|
||||||
<MenuInner message={message} onEmojiSelect={onEmojiSelect} />
|
|
||||||
</Menu.Outer>
|
|
||||||
</Menu.Root>
|
</Menu.Root>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -55,6 +53,15 @@ function MenuInner({
|
|||||||
|
|
||||||
const [expanded, setExpanded] = useState(false)
|
const [expanded, setExpanded] = useState(false)
|
||||||
|
|
||||||
|
const [prevOpen, setPrevOpen] = useState(control.isOpen)
|
||||||
|
|
||||||
|
if (control.isOpen !== prevOpen) {
|
||||||
|
setPrevOpen(control.isOpen)
|
||||||
|
if (!control.isOpen) {
|
||||||
|
setExpanded(false)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const handleEmojiPickerResponse = (emoji: Emoji) => {
|
const handleEmojiPickerResponse = (emoji: Emoji) => {
|
||||||
handleEmojiSelect(emoji.native)
|
handleEmojiSelect(emoji.native)
|
||||||
}
|
}
|
||||||
@@ -67,7 +74,16 @@ function MenuInner({
|
|||||||
const limitReacted = hasReachedReactionLimit(message, currentAccount?.did)
|
const limitReacted = hasReachedReactionLimit(message, currentAccount?.did)
|
||||||
|
|
||||||
return expanded ? (
|
return expanded ? (
|
||||||
<EmojiPicker onEmojiSelect={handleEmojiPickerResponse} autoFocus={true} />
|
<DropdownMenu.Portal>
|
||||||
|
<DropdownMenu.Content
|
||||||
|
sideOffset={5}
|
||||||
|
collisionPadding={{left: 5, right: 5, bottom: 5}}>
|
||||||
|
<EmojiPicker
|
||||||
|
onEmojiSelect={handleEmojiPickerResponse}
|
||||||
|
autoFocus={true}
|
||||||
|
/>
|
||||||
|
</DropdownMenu.Content>
|
||||||
|
</DropdownMenu.Portal>
|
||||||
) : (
|
) : (
|
||||||
<Menu.Outer style={[a.rounded_full]}>
|
<Menu.Outer style={[a.rounded_full]}>
|
||||||
<View style={[a.flex_row, a.gap_xs]}>
|
<View style={[a.flex_row, a.gap_xs]}>
|
||||||
|
|||||||
Reference in New Issue
Block a user