diff --git a/site/components/Anchor.js b/site/components/Anchor.js index 03dc895..4abc02c 100644 --- a/site/components/Anchor.js +++ b/site/components/Anchor.js @@ -2,13 +2,17 @@ import ReactDOM from 'react-dom' import { useRouter } from 'next/router' import { useState, useEffect, useRef, Fragment } from 'react' import { - useFloating, - useHover, - useInteractions, arrow, autoPlacement, autoUpdate, - offset + FloatingPortal, + offset, + shift, + useDismiss, + useFloating, + useHover, + useInteractions, + useRole, } from '@floating-ui/react-dom-interactions' import getAbsolutePath from '../utils/absolutePath' @@ -42,12 +46,15 @@ export const Anchor = (props) => { whileElementsMounted: autoUpdate, middleware: [ offset(5), - autoPlacement(), + autoPlacement({ padding: 5 }), + shift({ padding: 5 }), arrow({ element: arrowRef, padding: 4 }) ] }); const { getReferenceProps, getFloatingProps } = useInteractions([ - useHover(context, props) + useHover(context, { delay: { open: 100, close: 0 } }), + useRole(context, { role: 'tooltip' }), + useDismiss(context, { ancestorScroll: true }) ]); useEffect(() => { @@ -57,6 +64,7 @@ export const Anchor = (props) => { }, [showTooltip]) const fetchPreview = async () => { + console.log("Fetching...") setPreviewLoaded(false); const basePath = "http://localhost:3000"; // TODO const currentPath = router.asPath; @@ -84,30 +92,26 @@ export const Anchor = (props) => { ) { return - {( // TODO temp client only - typeof window !== 'undefined' && window.document && - ReactDOM.createPortal( - ( - { preview } - - ), document.body - ) - )} + + + { preview } + + ; } return ; diff --git a/site/components/Tooltip.js b/site/components/Tooltip.js index 4b90e2d..d63e2eb 100644 --- a/site/components/Tooltip.js +++ b/site/components/Tooltip.js @@ -3,13 +3,13 @@ import React from 'react'; const tooltipStyles = (theme) => ({ height: 'auto', - // maxWidth: '30rem', - padding: '16px 22px', + maxWidth: '80vw', + padding: '1rem 2rem', background: theme === 'light' ? '#fff' : '#000', color: theme === 'light' ? 'rgb(99, 98, 98)' : '#A8A8A8', borderRadius: '4px', boxShadow: 'rgba(0, 0, 0, 0.55) 0px 0px 16px -3px', - fontSize: '90%' + fontSize: '0.9em' }) const tooltipArrowStyles = ({ theme, x, y, side }) => ({ @@ -28,8 +28,6 @@ const tooltipArrowStyles = ({ theme, x, y, side }) => ({ export const Tooltip = React.forwardRef((props, ref) => { const { theme, children, arrowRef, arrowX, arrowY, placement, ...tooltipProps } = props; - console.log({ arrowRef, arrowX, arrowY, placement }); - const arrowPlacement = { top: 'bottom', right: 'left',