UNPKG

@trail-ui/react

Version:
79 lines (77 loc) 2.59 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/image/base-image.tsx var base_image_exports = {}; __export(base_image_exports, { BaseImage: () => _BaseImage }); module.exports = __toCommonJS(base_image_exports); var import_hooks = require("@trail-ui/hooks"); var import_shared_utils = require("@trail-ui/shared-utils"); var import_react = require("react"); var import_jsx_runtime = require("react/jsx-runtime"); function BaseImage(props, ref) { const { as, src, srcSet, crossOrigin, fallbackSrc, fallback, loading, ignoreFallback, fallbackStrategy = "beforeLoadOrError", referrerPolicy, ...otherProps } = props; const Component = as || "img"; const providedFallback = fallbackSrc !== void 0 || fallback !== void 0; const shouldIgnoreFallbackImage = loading != null || // use can opt out of fallback image ignoreFallback || // if the user doesn't provide any kind of fallback we should ignore it !providedFallback; const status = (0, import_hooks.useImage)({ ...props, crossOrigin, ignoreFallback: shouldIgnoreFallbackImage }); const showFallbackImage = (0, import_hooks.shouldShowFallbackImage)(status, fallbackStrategy); if (showFallbackImage) { if (fallback) return fallback; return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Component, { ref, src: fallbackSrc, crossOrigin, ...otherProps }); } return /* @__PURE__ */ (0, import_jsx_runtime.jsx)( Component, { ref, src, srcSet, crossOrigin, loading, referrerPolicy, "data-loaded": (0, import_shared_utils.dataAttr)(status === "loaded"), ...otherProps } ); } var _BaseImage = (0, import_react.forwardRef)(BaseImage); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { BaseImage });