@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
102 lines (101 loc) • 4.07 kB
JavaScript
;
"use client";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _exportNames = {};
exports.default = IconPrimary;
var _react = require("react");
var _Context = _interopRequireDefault(require("../../shared/Context.js"));
var _componentHelper = require("../../shared/component-helper.js");
var _Icon = require("../icon/Icon.js");
Object.keys(_Icon).forEach(function (key) {
if (key === "default" || key === "__esModule") return;
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
if (key in exports && exports[key] === _Icon[key]) return;
Object.defineProperty(exports, key, {
enumerable: true,
get: function () {
return _Icon[key];
}
});
});
var _IconTransition = require("../icon/IconTransition.js");
var _SpacingUtils = require("../space/SpacingUtils.js");
var _useCombinedRef = _interopRequireDefault(require("../../shared/helpers/useCombinedRef.js"));
var _useIsomorphicLayoutEffect = require("../../shared/helpers/useIsomorphicLayoutEffect.js");
var _withComponentMarkers = _interopRequireDefault(require("../../shared/helpers/withComponentMarkers.js"));
var primaryIcons = _interopRequireWildcard(require("../../icons/dnb/primary_icons.js"));
var primaryIconsMedium = _interopRequireWildcard(require("../../icons/dnb/primary_icons_medium.js"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const icons = {
...primaryIcons,
...primaryIconsMedium
};
function IconPrimary(localProps) {
const context = (0, _react.useContext)(_Context.default);
const props = (0, _componentHelper.extendPropsWithContext)(localProps, {}, {
skeleton: context?.skeleton
}, context.Icon, context.IconPrimary);
const {
icon,
size,
wrapperParams,
iconParams,
alt,
transitionState
} = (0, _Icon.prepareIcon)(props, context);
const spacingProps = (0, _SpacingUtils.useSpacing)(props, {
className: wrapperParams.className,
style: wrapperParams.style
});
const IconContainer = (0, _Icon.prerenderIcon)({
icon,
size,
alt,
listOfIcons: icons
});
const ref = (0, _react.useRef)(null);
const isInitialMount = (0, _react.useRef)(true);
const {
ref: externalRef,
...restWrapperParams
} = wrapperParams;
const combinedRef = (0, _useCombinedRef.default)(ref, externalRef);
(0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {
if (!transitionState || !ref.current) {
return;
}
const iconFn = icon;
if (iconFn?.__iconTransitionStyle) {
for (const [key, value] of Object.entries(iconFn.__iconTransitionStyle)) {
ref.current.style.setProperty(key, value);
}
}
if (isInitialMount.current) {
isInitialMount.current = false;
(0, _IconTransition.suppressTransitions)(ref.current, () => {
_IconTransition.transition.activate(ref.current, transitionState);
});
} else {
_IconTransition.transition.activate(ref.current, transitionState);
}
}, [transitionState, icon]);
if (!IconContainer) {
return null;
}
return (0, _jsxRuntime.jsx)("span", {
...restWrapperParams,
ref: combinedRef,
...spacingProps,
children: (0, _jsxRuntime.jsx)(IconContainer, {
...iconParams
})
});
}
(0, _withComponentMarkers.default)(IconPrimary, {
_supportsSpacingProps: true
});
//# sourceMappingURL=IconPrimary.js.map