@trap_stevo/legendarybuilderproreact-ui
Version:
The legendary UI & utility API that makes your application a legendary application. ~ Created by Steven Compton
62 lines • 3.77 kB
JavaScript
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
import React, { useState } from "react";
function HUDHoloSpotlightAmbience(hudHoloSpotlightAmbienceConfigurationSettings) {
var _hudHoloSpotlightAmbi = hudHoloSpotlightAmbienceConfigurationSettings.spotlightAmbienceContainerConfigurationSettings,
spotlightAmbienceContainerConfigurationSettings = _hudHoloSpotlightAmbi === void 0 ? {} : _hudHoloSpotlightAmbi,
_hudHoloSpotlightAmbi2 = hudHoloSpotlightAmbienceConfigurationSettings.spotlightColor,
spotlightColor = _hudHoloSpotlightAmbi2 === void 0 ? "rgba(247, 247, 187, 0.269)" : _hudHoloSpotlightAmbi2,
_hudHoloSpotlightAmbi3 = hudHoloSpotlightAmbienceConfigurationSettings.luminescent,
luminescent = _hudHoloSpotlightAmbi3 === void 0 ? false : _hudHoloSpotlightAmbi3,
_hudHoloSpotlightAmbi4 = hudHoloSpotlightAmbienceConfigurationSettings.outerRadius,
outerRadius = _hudHoloSpotlightAmbi4 === void 0 ? "10%" : _hudHoloSpotlightAmbi4,
_hudHoloSpotlightAmbi5 = hudHoloSpotlightAmbienceConfigurationSettings.innerRadius,
innerRadius = _hudHoloSpotlightAmbi5 === void 0 ? "5%" : _hudHoloSpotlightAmbi5,
children = hudHoloSpotlightAmbienceConfigurationSettings.children;
var _useState = useState({}),
_useState2 = _slicedToArray(_useState, 2),
highlightStyle = _useState2[0],
setHighlightStyle = _useState2[1];
var mergedStyles = _objectSpread({
position: "relative",
border: "2px solid #333",
borderRadius: "10px",
overflow: "hidden"
}, spotlightAmbienceContainerConfigurationSettings);
var spotlightStyles = _objectSpread({
position: "absolute",
transition: "background 0.3s, border-image 0.3s",
borderRadius: "inherit",
pointerEvents: "none",
content: '""',
height: "100%",
width: "100%",
left: 0,
top: 0
}, highlightStyle);
var handleMouseMove = function handleMouseMove(e) {
var rect = e.currentTarget.getBoundingClientRect();
var x = e.clientX - rect.left;
var y = e.clientY - rect.top;
var luminescentColor = spotlightColor.replace(/rgba?\((\d+), (\d+), (\d+).*/, "rgba($1, $2, $3, 0.5)");
var gradient = luminescent ? "radial-gradient(circle at ".concat(x, "px ").concat(y, "px, ").concat(spotlightColor, " ").concat(innerRadius, ", ").concat(luminescentColor, " ").concat(outerRadius, ", transparent 60%)") : "radial-gradient(circle at ".concat(x, "px ").concat(y, "px, ").concat(spotlightColor, " ").concat(innerRadius, ", transparent ").concat(outerRadius, ")");
setHighlightStyle({
borderImage: "".concat(gradient, " 1"),
background: gradient
});
};
var handleMouseLeave = function handleMouseLeave() {
setHighlightStyle({});
};
return /*#__PURE__*/React.createElement("div", {
style: mergedStyles,
onMouseLeave: handleMouseLeave,
onMouseMove: handleMouseMove
}, /*#__PURE__*/React.createElement("div", {
style: spotlightStyles
}), children);
}
;
export default HUDHoloSpotlightAmbience;