@trafilea/afrodita-components 6.56.1 → 6.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.d.ts CHANGED
@@ -216,6 +216,7 @@ declare type ImageProps = ImageStyleProps & {
216
216
  quality?: number;
217
217
  loading?: ImgAttributes['loading'];
218
218
  decoding?: ImgAttributes['decoding'];
219
+ fallbackImg?: string;
219
220
  };
220
221
  declare const Image: React.FC<ImageProps>;
221
222
 
@@ -3974,12 +3974,25 @@ var buildImageUrl = function (_a) {
3974
3974
 
3975
3975
  var Img$1 = newStyled.img(templateObject_1$2u || (templateObject_1$2u = __makeTemplateObject(["\n height: ", ";\n width: ", ";\n border-radius: ", ";\n object-fit: ", ";\n object-position: ", ";\n"], ["\n height: ", ";\n width: ", ";\n border-radius: ", ";\n object-fit: ", ";\n object-position: ", ";\n"])), function (props) { return props.height; }, function (props) { return props.width; }, function (props) { return props.borderRadius; }, function (props) { return props.objectFit; }, function (props) { return props.objectPosition; });
3976
3976
  var Image$3 = function (_a) {
3977
- var src = _a.src, srcSet = _a.srcSet, _b = _a.sizes, sizes = _b === void 0 ? '100vw' : _b, _c = _a.loading, loading = _c === void 0 ? 'lazy' : _c, _d = _a.decoding, decoding = _d === void 0 ? 'async' : _d, alt = _a.alt, height = _a.height, width = _a.width, borderRadius = _a.borderRadius, objectFit = _a.objectFit, objectPosition = _a.objectPosition, quality = _a.quality, rest = __rest(_a, ["src", "srcSet", "sizes", "loading", "decoding", "alt", "height", "width", "borderRadius", "objectFit", "objectPosition", "quality"]);
3978
- var config = useTheme().config;
3977
+ var src = _a.src, srcSet = _a.srcSet, _b = _a.sizes, sizes = _b === void 0 ? '100vw' : _b, _c = _a.loading, loading = _c === void 0 ? 'lazy' : _c, _d = _a.decoding, decoding = _d === void 0 ? 'async' : _d, alt = _a.alt, height = _a.height, width = _a.width, borderRadius = _a.borderRadius, objectFit = _a.objectFit, objectPosition = _a.objectPosition, quality = _a.quality, fallbackImg = _a.fallbackImg, rest = __rest(_a, ["src", "srcSet", "sizes", "loading", "decoding", "alt", "height", "width", "borderRadius", "objectFit", "objectPosition", "quality", "fallbackImg"]);
3978
+ var _e = useTheme(), config = _e.config, assets = _e.assets;
3979
+ var _f = useState(0), errorStage = _f[0], setErrorStage = _f[1];
3979
3980
  var source = (config === null || config === void 0 ? void 0 : config.useTrafileaImages)
3980
3981
  ? buildImageUrl({ cdn: config.cdn, src: src, height: height, width: width, quality: quality })
3981
3982
  : src;
3982
- return (jsx$1(Img$1, __assign$1({ src: source, srcSet: srcSet, sizes: sizes, loading: loading, decoding: decoding, alt: alt, height: height, width: width, borderRadius: borderRadius, objectFit: objectFit, objectPosition: objectPosition }, rest), void 0));
3983
+ var handleError = function (e) {
3984
+ var fallbackCdn = "".concat(assets.cdn, "/images/fallback_img.svg");
3985
+ var imgElement = e.target;
3986
+ if (errorStage === 0 && fallbackImg) {
3987
+ imgElement.src = fallbackImg;
3988
+ setErrorStage(1);
3989
+ }
3990
+ else if (errorStage <= 1) {
3991
+ imgElement.src = fallbackCdn;
3992
+ setErrorStage(2);
3993
+ }
3994
+ };
3995
+ return (jsx$1(Img$1, __assign$1({ onError: handleError, src: source, srcSet: srcSet, sizes: sizes, loading: loading, decoding: decoding, alt: alt, height: height, width: width, borderRadius: borderRadius, objectFit: objectFit, objectPosition: objectPosition }, rest), void 0));
3983
3996
  };
3984
3997
  var templateObject_1$2u;
3985
3998