Clean up tooltip on long hover for visualiser
Summary: Previously every single visualisation node would have jsx for a tooltip and would control its own tooltop. now we have the overlay we can have just one. this improves perf a bit and simplifies the code. i also increased the delay slightly Reviewed By: lblasa Differential Revision: D46274098 fbshipit-source-id: cb8afbc4804c549da9abf33d69aaf190397f74c7
This commit is contained in:
committed by
Facebook GitHub Bot
parent
c13180a929
commit
74ecbec9e6
30
desktop/plugins/public/ui-debugger/hooks/useDelay.tsx
Normal file
30
desktop/plugins/public/ui-debugger/hooks/useDelay.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
/**
|
||||
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*
|
||||
* @format
|
||||
*/
|
||||
|
||||
import {useEffect, useRef, useState} from 'react';
|
||||
|
||||
export function useDelay(delayTimeMs: number) {
|
||||
const [isDone, setIsDone] = useState(false);
|
||||
const delayTimerStarted = useRef(false);
|
||||
useEffect(() => {
|
||||
let handle: NodeJS.Timeout | null = null;
|
||||
if (delayTimerStarted.current === false) {
|
||||
handle = setTimeout(() => setIsDone(true), delayTimeMs);
|
||||
delayTimerStarted.current = true;
|
||||
}
|
||||
|
||||
return () => {
|
||||
if (handle !== null) {
|
||||
clearTimeout(handle);
|
||||
}
|
||||
};
|
||||
}, [delayTimeMs]);
|
||||
|
||||
return isDone;
|
||||
}
|
||||
Reference in New Issue
Block a user