diff --git a/app/soapbox/components/status_action_bar.js b/app/soapbox/components/status_action_bar.js index fc85da343..6f144953a 100644 --- a/app/soapbox/components/status_action_bar.js +++ b/app/soapbox/components/status_action_bar.js @@ -663,30 +663,34 @@ class StatusActionBar extends ImmutablePureComponent { {reblogCount !== 0 && {reblogCount}} - - )} > - + + )} + > + + + {emojiReactCount !== 0 && ( (features.exposableReactions && !features.emojiReacts) ? ( @@ -696,7 +700,7 @@ class StatusActionBar extends ImmutablePureComponent { {emojiReactCount} ) )} - + {shareButton} diff --git a/app/soapbox/components/ui/emoji-selector/emoji-selector.tsx b/app/soapbox/components/ui/emoji-selector/emoji-selector.tsx index d4006562e..aaa5b9349 100644 --- a/app/soapbox/components/ui/emoji-selector/emoji-selector.tsx +++ b/app/soapbox/components/ui/emoji-selector/emoji-selector.tsx @@ -38,7 +38,7 @@ const EmojiSelector: React.FC = ({ emojis, onReact, visible = fa return ( {emojis.map((emoji, i) => ( = ({ }): JSX.Element => { const [portalActive, setPortalActive] = useState(false); + const ref = useRef(null); + const popperRef = useRef(null); const handleMouseEnter = () => { setPortalActive(true); @@ -22,17 +25,18 @@ const Hoverable: React.FC = ({ setPortalActive(false); }; - const setPortalPosition = (): React.CSSProperties => { - if (!ref.current) return {}; - - const { top, height, left, width } = ref.current.getBoundingClientRect(); - - return { - top: top + height, - left, - width, - }; - }; + const { styles, attributes } = usePopper(ref.current, popperRef.current, { + placement: 'top-start', + strategy: 'fixed', + modifiers: [ + { + name: 'offset', + options: { + offset: [-10, 0], + }, + }, + ], + }); return ( = ({ ref={ref} > {children} - {portalActive && {component}} + + + {component} + ); };