bereact-ui
Version:
Bibliothèque de composants React open-source
32 lines (31 loc) • 2.04 kB
JavaScript
import { j as s } from "./jsx-runtime-foPj8jHJ.js";
import { useRef as v, useCallback as c, useEffect as j } from "react";
function H({ content: a, pattern: o, beginWithEffect: p, endKeepEffect: i, size: d }) {
const r = v(null), P = c(() => {
const e = r.current;
e && (e.style.setProperty("--x", "50%"), e.style.setProperty("--y", "50%"), e.style.setProperty("--bg-x", "50%"), e.style.setProperty("--bg-y", "50%"), e.style.setProperty("--r-x", "0deg"), e.style.setProperty("--r-y", "0deg"), i || e.style.setProperty("--patternPath", null));
}, []), u = c((e) => {
const t = r.current;
if (t) {
const g = t.clientWidth, f = t.clientHeight, n = t.getBoundingClientRect(), l = (e.clientX - n.left) / g, y = (e.clientY - n.top) / f, h = -(l - 0.5) * 26, b = (y - 0.5) * 26, m = 40 + 20 * l, _ = 40 + 20 * y;
t.style.setProperty("--x", 100 * l + "%"), t.style.setProperty("--y", 100 * y + "%"), t.style.setProperty("--bg-x", m + "%"), t.style.setProperty("--bg-y", _ + "%"), t.style.setProperty("--r-x", h + "deg"), t.style.setProperty("--r-y", b + "deg"), t.style.setProperty("--patternPath", "url(" + o + ")");
}
}, []);
j(() => {
if (p) {
const e = r.current;
e && (e.style.setProperty("--x", "50%"), e.style.setProperty("--y", "50%"), e.style.setProperty("--bg-x", "50%"), e.style.setProperty("--bg-y", "50%"), e.style.setProperty("--r-x", "0deg"), e.style.setProperty("--r-y", "0deg"), e.style.setProperty("--patternPath", "url(" + o + ")"));
}
}, [r]);
const x = {
"--patternPath": "url(" + o + ")",
width: d + "px"
};
return /* @__PURE__ */ s.jsx("div", { className: "bereact_ui_holoCard", ref: r, style: x, onMouseMove: u, onMouseLeave: P, children: /* @__PURE__ */ s.jsx("div", { className: "card__wrapper", children: /* @__PURE__ */ s.jsxs("div", { className: "card__3d", children: [
/* @__PURE__ */ s.jsx("div", { className: "card__content", children: a }),
/* @__PURE__ */ s.jsx("div", { className: "card__layer2" })
] }) }) });
}
export {
H
};