@react95/core
Version:
Windows 95 styleguide
61 lines (60 loc) • 1.49 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const React = require("react");
const cn = require("classnames");
const Tooltip_css = require("./Tooltip.css.cjs");
function formatDate(date) {
const monthNames = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
];
const day = date.getDate();
const monthIndex = date.getMonth();
const year = date.getFullYear();
return `${day.toString().padStart(2, "0")} ${monthNames[monthIndex]} ${year}`;
}
const TooltipRenderer = ({
children,
text = formatDate(/* @__PURE__ */ new Date()),
delay = 1e3,
...rest
}, ref) => {
const [show, setShow] = React.useState(false);
const [delayTimer, setDelayTimer] = React.useState(0);
const handleEnter = () => {
const timer = window.setTimeout(() => {
setShow(true);
}, delay);
setDelayTimer(timer);
};
const handleLeave = () => {
clearTimeout(delayTimer);
setShow(false);
};
return /* @__PURE__ */ React.createElement(
"div",
{
...rest,
className: cn(Tooltip_css.wrapper, rest.className),
onMouseEnter: handleEnter,
onMouseLeave: handleLeave,
ref
},
show && /* @__PURE__ */ React.createElement("div", { className: Tooltip_css.tip }, text),
children
);
};
const Tooltip = React.forwardRef(
TooltipRenderer
);
exports.Tooltip = Tooltip;
;