@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
JavaScript
;
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