UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

40 lines 1.91 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.IconHost = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = __importDefault(require("react")); const styled_components_1 = require("styled-components"); const context_1 = require("../../provider/utils/context"); const provider_1 = require("../../provider/utils/provider"); const isValidUrl_1 = require("../../utils/isValidUrl/isValidUrl"); const errorBoundary_1 = require("../../provider/errorBoundary/errorBoundary"); const icon_1 = require("./icon"); const IconWithProvider = (props) => { const { ICONS_STYLES } = (0, styled_components_1.useTheme)(); const { assets } = (0, provider_1.useUtilsProvider)(); const isUrl = (0, isValidUrl_1.isValidHttpUrl)(props.icon); let hostIcon; let urlIcon = ''; if (ICONS_STYLES?.[props.icon]) { hostIcon = assets?.baseHost; } if (isUrl) { urlIcon = props.icon; } else if (props.icon && hostIcon) { urlIcon = `${hostIcon}${[ICONS_STYLES?.[props.icon]]}`; } return (0, jsx_runtime_1.jsx)(icon_1.IconBasic, { ...props, ref: props.ref, icon: urlIcon }); }; const IconHostComponent = ({ ...props }, ref) => { const myContext = react_1.default.useContext(context_1.UtilsContext); if (!myContext?.assets) { return (0, jsx_runtime_1.jsx)(icon_1.IconBasic, { ...props, ref: ref }); } return ((0, jsx_runtime_1.jsx)(errorBoundary_1.ErrorBoundary, { fallBackComponent: (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), resetCondition: props.icon, children: (0, jsx_runtime_1.jsx)(IconWithProvider, { ...props, ref: ref }) })); }; exports.IconHost = react_1.default.forwardRef(IconHostComponent); //# sourceMappingURL=iconHost.js.map