chore: change tooltip timings & behavior (#2402)

This commit is contained in:
Aman Harwara
2023-08-10 23:56:26 +05:30
committed by GitHub
parent 3379f4a557
commit 2f44f9b625
6 changed files with 23 additions and 13 deletions

View File

@@ -108,7 +108,7 @@
"app/**/*.{js,ts,jsx,tsx,css,md}": "prettier --write" "app/**/*.{js,ts,jsx,tsx,css,md}": "prettier --write"
}, },
"dependencies": { "dependencies": {
"@ariakit/react": "^0.2.8", "@ariakit/react": "^0.2.15",
"@lexical/headless": "0.11.3", "@lexical/headless": "0.11.3",
"@radix-ui/react-slot": "^1.0.1", "@radix-ui/react-slot": "^1.0.1",
"fast-diff": "^1.3.0" "fast-diff": "^1.3.0"

View File

@@ -362,6 +362,7 @@ const NoteConflictResolutionModal = ({
<div className={isPreviewMode ? 'mr-9' : ''}>Diff Mode</div> <div className={isPreviewMode ? 'mr-9' : ''}>Diff Mode</div>
{showSuperConversionInfo && ( {showSuperConversionInfo && (
<StyledTooltip <StyledTooltip
interactive
className="!z-modal !max-w-[50ch]" className="!z-modal !max-w-[50ch]"
label={ label={
<> <>

View File

@@ -12,6 +12,7 @@ const StyledTooltip = ({
label, label,
showOnMobile = false, showOnMobile = false,
showOnHover = true, showOnHover = true,
interactive = false,
...props ...props
}: { }: {
children: ReactNode children: ReactNode
@@ -19,11 +20,14 @@ const StyledTooltip = ({
className?: string className?: string
showOnMobile?: boolean showOnMobile?: boolean
showOnHover?: boolean showOnHover?: boolean
interactive?: boolean
} & Partial<TooltipOptions>) => { } & Partial<TooltipOptions>) => {
const [forceOpen, setForceOpen] = useState<boolean | undefined>() const [forceOpen, setForceOpen] = useState<boolean | undefined>()
const tooltip = useTooltipStore({ const tooltip = useTooltipStore({
timeout: 350, timeout: 500,
hideTimeout: 0,
skipTimeout: 0,
open: forceOpen, open: forceOpen,
}) })
const isMobile = useMediaQuery(MutuallyExclusiveMediaQueryBreakpoints.sm) const isMobile = useMediaQuery(MutuallyExclusiveMediaQueryBreakpoints.sm)
@@ -35,7 +39,7 @@ const StyledTooltip = ({
return ( return (
<> <>
<TooltipAnchor <TooltipAnchor
onFocus={() => setForceOpen(true)} onClick={() => setForceOpen(false)}
onBlur={() => setForceOpen(undefined)} onBlur={() => setForceOpen(undefined)}
store={tooltip} store={tooltip}
as={Slot} as={Slot}
@@ -44,6 +48,7 @@ const StyledTooltip = ({
{children} {children}
</TooltipAnchor> </TooltipAnchor>
<Tooltip <Tooltip
tabIndex={undefined}
autoFocusOnShow={!showOnHover} autoFocusOnShow={!showOnHover}
store={tooltip} store={tooltip}
className={classNames( className={classNames(
@@ -53,6 +58,10 @@ const StyledTooltip = ({
updatePosition={() => { updatePosition={() => {
const { popoverElement, anchorElement, open } = tooltip.getState() const { popoverElement, anchorElement, open } = tooltip.getState()
if (!interactive && popoverElement) {
popoverElement.style.pointerEvents = 'none'
}
const documentElement = document.querySelector('.main-ui-view') const documentElement = document.querySelector('.main-ui-view')
if (!popoverElement || !anchorElement || !documentElement || !open) { if (!popoverElement || !anchorElement || !documentElement || !open) {

View File

@@ -43,9 +43,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@ariakit/react-core@npm:0.2.14": "@ariakit/react-core@npm:0.2.15":
version: 0.2.14 version: 0.2.15
resolution: "@ariakit/react-core@npm:0.2.14" resolution: "@ariakit/react-core@npm:0.2.15"
dependencies: dependencies:
"@ariakit/core": 0.2.7 "@ariakit/core": 0.2.7
"@floating-ui/dom": ^1.0.0 "@floating-ui/dom": ^1.0.0
@@ -53,19 +53,19 @@ __metadata:
peerDependencies: peerDependencies:
react: ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0
checksum: 34391ffc3b8587c14d5663bd4b0a582f6e9dab4674c08f0103f7bdb035690f404a24c9e79bfbb58cb9fad43edc6eb00ae5e928463fd358705466cd09e59afd24 checksum: 47a9cddd6bae86300b564b159e93ae3d005d13b1d095ac2862b09c986f4dee11e5a73dd7f494cb36519abf5360b8457dd9eeb28434d5b273ca9ff004d72d909a
languageName: node languageName: node
linkType: hard linkType: hard
"@ariakit/react@npm:^0.2.8": "@ariakit/react@npm:^0.2.15":
version: 0.2.14 version: 0.2.15
resolution: "@ariakit/react@npm:0.2.14" resolution: "@ariakit/react@npm:0.2.15"
dependencies: dependencies:
"@ariakit/react-core": 0.2.14 "@ariakit/react-core": 0.2.15
peerDependencies: peerDependencies:
react: ^17.0.0 || ^18.0.0 react: ^17.0.0 || ^18.0.0
react-dom: ^17.0.0 || ^18.0.0 react-dom: ^17.0.0 || ^18.0.0
checksum: 7c2836484fb15c76871172b276a53640def873052dca489f520155bc80c9c7e11b4acc0a44baf055239b59c46e1221ab4c1c41ba9186ffbc89ff59d5ed685bb8 checksum: b20fb428f80768f6ef90658503ddfb56df23117077a2d3f53c3e6dc7362a57692b39f900c0a347831c83cf1e33159cb247e9813cb3310e8fbe57a93b6074b6f1
languageName: node languageName: node
linkType: hard linkType: hard
@@ -4984,7 +4984,7 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "@standardnotes/web@workspace:packages/web" resolution: "@standardnotes/web@workspace:packages/web"
dependencies: dependencies:
"@ariakit/react": ^0.2.8 "@ariakit/react": ^0.2.15
"@babel/core": "*" "@babel/core": "*"
"@babel/plugin-proposal-class-properties": ^7.18.6 "@babel/plugin-proposal-class-properties": ^7.18.6
"@babel/plugin-transform-react-jsx": ^7.19.0 "@babel/plugin-transform-react-jsx": ^7.19.0