1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2022-01-19 12:52:16 +03:00
parent 5c49f3a643
commit 4553e58b69

View File

@ -16,10 +16,6 @@ import { withInjectables } from "@ogre-tools/injectable-react";
import commandOverlayInjectable from "../command-palette/command-overlay.injectable"; import commandOverlayInjectable from "../command-palette/command-overlay.injectable";
import { cssNames } from "../../utils"; import { cssNames } from "../../utils";
export interface HotbarSelectorProps {
hotbar: Hotbar;
}
interface Dependencies { interface Dependencies {
hotbarManager: { hotbarManager: {
switchToPrevious: () => void; switchToPrevious: () => void;
@ -30,26 +26,30 @@ interface Dependencies {
openCommandOverlay: (component: React.ReactElement) => void; openCommandOverlay: (component: React.ReactElement) => void;
} }
export interface HotbarSelectorProps extends Partial<Dependencies> {
hotbar: Hotbar;
}
const NonInjectedHotbarSelector = observer(({ hotbar, hotbarManager, openCommandOverlay }: HotbarSelectorProps & Dependencies) => { const NonInjectedHotbarSelector = observer(({ hotbar, hotbarManager, openCommandOverlay }: HotbarSelectorProps & Dependencies) => {
const [tooltipVisible, setTooltipVisible] = useState(false); const [tooltipVisible, setTooltipVisible] = useState(false);
const tooltipTimeout = useRef<NodeJS.Timeout>(); const tooltipTimeout = useRef<NodeJS.Timeout>();
const clearTimer = () => { function clearTimer() {
clearTimeout(tooltipTimeout.current); clearTimeout(tooltipTimeout.current);
}; };
const onTooltipShow = () => { function onTooltipShow() {
setTooltipVisible(true); setTooltipVisible(true);
clearTimer(); clearTimer();
tooltipTimeout.current = setTimeout(() => setTooltipVisible(false), 1500); tooltipTimeout.current = setTimeout(() => setTooltipVisible(false), 1500);
}; };
const onArrowClick = (switchTo: () => void) => { function onArrowClick(switchTo: () => void) {
onTooltipShow(); onTooltipShow();
switchTo(); switchTo();
}; };
const onMouseEvent = (event: React.MouseEvent) => { function onMouseEvent(event: React.MouseEvent) {
clearTimer(); clearTimer();
setTooltipVisible(event.type == "mouseenter"); setTooltipVisible(event.type == "mouseenter");
}; };