@itcase/ui 1.9.49 → 1.9.50
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/dist/{Avatar_cjs_B_hjRkuy.js → Avatar_cjs_CZ0XJ6d2.js} +1 -1
- package/dist/{Avatar_es_BgYYfuzU.js → Avatar_es_CVr38U27.js} +1 -1
- package/dist/{Image_cjs_BxZFowhi.js → Image_cjs_C_FMjUjx.js} +11 -7
- package/dist/{Image_es_Bx7l_UwQ.js → Image_es_Ca7UQOkj.js} +12 -8
- package/dist/cjs/components/Avatar.js +2 -2
- package/dist/cjs/components/AvatarStack.js +2 -2
- package/dist/cjs/components/Image.js +1 -1
- package/dist/components/Avatar.js +2 -2
- package/dist/components/AvatarStack.js +2 -2
- package/dist/components/Image.js +1 -1
- package/package.json +1 -1
|
@@ -6,7 +6,7 @@ var clsx = require('clsx');
|
|
|
6
6
|
var useAppearanceConfig = require('./cjs/hooks/useAppearanceConfig/useAppearanceConfig.js');
|
|
7
7
|
var useDevicePropsGenerator = require('./cjs/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js');
|
|
8
8
|
var Icon = require('./Icon_cjs_CuqEv1jm.js');
|
|
9
|
-
var Image = require('./
|
|
9
|
+
var Image = require('./Image_cjs_C_FMjUjx.js');
|
|
10
10
|
var Text = require('./Text_cjs_erTy2pUN.js');
|
|
11
11
|
|
|
12
12
|
const avatarAppearanceDefault = {
|
|
@@ -4,7 +4,7 @@ import clsx from 'clsx';
|
|
|
4
4
|
import { useAppearanceConfig } from './hooks/useAppearanceConfig/useAppearanceConfig.js';
|
|
5
5
|
import { useDevicePropsGenerator } from './hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
6
6
|
import { I as Icon, B as Badge } from './Icon_es_DoAtUvPe.js';
|
|
7
|
-
import { I as Image } from './
|
|
7
|
+
import { I as Image } from './Image_es_Ca7UQOkj.js';
|
|
8
8
|
import { T as Text } from './Text_es_B85LGfjW.js';
|
|
9
9
|
|
|
10
10
|
const avatarAppearanceDefault = {
|
|
@@ -12,22 +12,26 @@ const Image = urlWithAssetPrefix.urlWithAssetPrefix(React.forwardRef(function Im
|
|
|
12
12
|
const propsGenerator = useDevicePropsGenerator.useDevicePropsGenerator(props);
|
|
13
13
|
const { fillClass, fillHoverClass, borderColorClass, borderColorImageClass, borderTypeClass, borderWidthClass, cursorClass, heightClass, horizontalAlignClass, imageHeightClass, imageWidthClass, resizeModeClass, shapeClass, verticalAlignClass, widthClass, } = propsGenerator;
|
|
14
14
|
const { image: imageStyles, styles, wrapper: wrapperStyles, } = useStyles.useStyles(props);
|
|
15
|
-
const
|
|
15
|
+
const [imageSrc, setImageSrc] = React.useState(null);
|
|
16
|
+
// Handles image load errors: calls onError callback or falls back to placeholderUrl
|
|
17
|
+
const handleImageError = React.useCallback((event) => {
|
|
16
18
|
const img = event.target;
|
|
17
19
|
if (onError) {
|
|
18
20
|
onError(event);
|
|
21
|
+
return;
|
|
19
22
|
}
|
|
20
|
-
|
|
23
|
+
if (placeholderUrl && !img.src.endsWith(placeholderUrl)) {
|
|
21
24
|
img.src = placeholderUrl;
|
|
22
25
|
}
|
|
23
26
|
}, [onError, placeholderUrl]);
|
|
24
|
-
//
|
|
25
|
-
|
|
27
|
+
// Syncs imageSrc state with src and placeholderUrl props
|
|
28
|
+
React.useEffect(() => {
|
|
29
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
30
|
+
setImageSrc(src || placeholderUrl || null);
|
|
31
|
+
}, [src, placeholderUrl]);
|
|
26
32
|
return (jsxRuntime.jsxs("div", { className: clsx(className, 'image', mode && `image_mode_${mode}`, type && `image_type_${type}`, cursorClass && `cursor_${cursorClass}`, horizontalAlignClass &&
|
|
27
33
|
`image_horizontal-align_${horizontalAlignClass}`, verticalAlignClass && `image_vertical-align_${verticalAlignClass}`, shapeClass && `image_shape_${shapeClass}`, fillClass && `fill_${fillClass}`, fillHoverClass && `fill_hover_${fillHoverClass}`, resizeModeClass && `image_resize-mode_${resizeModeClass}`, widthClass && `width_${widthClass}`, heightClass && `height_${heightClass}`, isSkeleton && 'image_skeleton'), ref: ref, "data-testid": dataTestId, "data-tour": dataTour, style: styles, onClick: onClick, children: [before, jsxRuntime.jsxs("div", { className: clsx('image__wrapper', imageWrapperClassName), style: wrapperStyles, children: [jsxRuntime.jsx("img", { className: clsx('image__item', imageWidthClass && `width_${imageWidthClass}`, imageHeightClass && `height_${imageHeightClass}`, imageClassName, borderWidthClass && `border-width_${borderWidthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderTypeClass && `border_type_${borderTypeClass}`, borderColorImageClass &&
|
|
28
|
-
`border-color-image_${borderColorImageClass}`), src: imageSrc, title: title || alt, alt: alt || title, style: imageStyles, onError:
|
|
34
|
+
`border-color-image_${borderColorImageClass}`), src: imageSrc, title: title || alt, alt: alt || title, "data-original-src": src, style: imageStyles, onError: handleImageError }), overlay, caption, children] }), after] }));
|
|
29
35
|
}));
|
|
30
|
-
// Make it random to not accidentally match a real image URL
|
|
31
|
-
const UNKNOWN_IMAGE_SRC = `unknown-image-${Math.random()}`;
|
|
32
36
|
|
|
33
37
|
exports.Image = Image;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { forwardRef, useCallback } from 'react';
|
|
2
|
+
import { forwardRef, useState, useCallback, useEffect } from 'react';
|
|
3
3
|
import clsx from 'clsx';
|
|
4
4
|
import { urlWithAssetPrefix } from './hoc/urlWithAssetPrefix.js';
|
|
5
5
|
import { useDevicePropsGenerator } from './hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
@@ -10,22 +10,26 @@ const Image = urlWithAssetPrefix(forwardRef(function Image(props, ref) {
|
|
|
10
10
|
const propsGenerator = useDevicePropsGenerator(props);
|
|
11
11
|
const { fillClass, fillHoverClass, borderColorClass, borderColorImageClass, borderTypeClass, borderWidthClass, cursorClass, heightClass, horizontalAlignClass, imageHeightClass, imageWidthClass, resizeModeClass, shapeClass, verticalAlignClass, widthClass, } = propsGenerator;
|
|
12
12
|
const { image: imageStyles, styles, wrapper: wrapperStyles, } = useStyles(props);
|
|
13
|
-
const
|
|
13
|
+
const [imageSrc, setImageSrc] = useState(null);
|
|
14
|
+
// Handles image load errors: calls onError callback or falls back to placeholderUrl
|
|
15
|
+
const handleImageError = useCallback((event) => {
|
|
14
16
|
const img = event.target;
|
|
15
17
|
if (onError) {
|
|
16
18
|
onError(event);
|
|
19
|
+
return;
|
|
17
20
|
}
|
|
18
|
-
|
|
21
|
+
if (placeholderUrl && !img.src.endsWith(placeholderUrl)) {
|
|
19
22
|
img.src = placeholderUrl;
|
|
20
23
|
}
|
|
21
24
|
}, [onError, placeholderUrl]);
|
|
22
|
-
//
|
|
23
|
-
|
|
25
|
+
// Syncs imageSrc state with src and placeholderUrl props
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
// eslint-disable-next-line react-hooks/set-state-in-effect
|
|
28
|
+
setImageSrc(src || placeholderUrl || null);
|
|
29
|
+
}, [src, placeholderUrl]);
|
|
24
30
|
return (jsxs("div", { className: clsx(className, 'image', mode && `image_mode_${mode}`, type && `image_type_${type}`, cursorClass && `cursor_${cursorClass}`, horizontalAlignClass &&
|
|
25
31
|
`image_horizontal-align_${horizontalAlignClass}`, verticalAlignClass && `image_vertical-align_${verticalAlignClass}`, shapeClass && `image_shape_${shapeClass}`, fillClass && `fill_${fillClass}`, fillHoverClass && `fill_hover_${fillHoverClass}`, resizeModeClass && `image_resize-mode_${resizeModeClass}`, widthClass && `width_${widthClass}`, heightClass && `height_${heightClass}`, isSkeleton && 'image_skeleton'), ref: ref, "data-testid": dataTestId, "data-tour": dataTour, style: styles, onClick: onClick, children: [before, jsxs("div", { className: clsx('image__wrapper', imageWrapperClassName), style: wrapperStyles, children: [jsx("img", { className: clsx('image__item', imageWidthClass && `width_${imageWidthClass}`, imageHeightClass && `height_${imageHeightClass}`, imageClassName, borderWidthClass && `border-width_${borderWidthClass}`, borderColorClass && `border-color_${borderColorClass}`, borderTypeClass && `border_type_${borderTypeClass}`, borderColorImageClass &&
|
|
26
|
-
`border-color-image_${borderColorImageClass}`), src: imageSrc, title: title || alt, alt: alt || title, style: imageStyles, onError:
|
|
32
|
+
`border-color-image_${borderColorImageClass}`), src: imageSrc, title: title || alt, alt: alt || title, "data-original-src": src, style: imageStyles, onError: handleImageError }), overlay, caption, children] }), after] }));
|
|
27
33
|
}));
|
|
28
|
-
// Make it random to not accidentally match a real image URL
|
|
29
|
-
const UNKNOWN_IMAGE_SRC = `unknown-image-${Math.random()}`;
|
|
30
34
|
|
|
31
35
|
export { Image as I };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var Avatar = require('../../
|
|
3
|
+
var Avatar = require('../../Avatar_cjs_CZ0XJ6d2.js');
|
|
4
4
|
require('react/jsx-runtime');
|
|
5
5
|
require('react');
|
|
6
6
|
require('clsx');
|
|
@@ -26,7 +26,7 @@ require('../hooks/useStyles/useStyles.js');
|
|
|
26
26
|
require('lodash/maxBy');
|
|
27
27
|
require('../../Link_cjs_Dn7UhCYe.js');
|
|
28
28
|
require('../../Text_cjs_erTy2pUN.js');
|
|
29
|
-
require('../../
|
|
29
|
+
require('../../Image_cjs_C_FMjUjx.js');
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
@@ -6,7 +6,7 @@ var mergeAppearanceKeys = require('../utils/mergeAppearanceKeys.js');
|
|
|
6
6
|
var useAppearanceConfig = require('../hooks/useAppearanceConfig/useAppearanceConfig.js');
|
|
7
7
|
var useDevicePropsGenerator = require('../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js');
|
|
8
8
|
var useStyles = require('../hooks/useStyles/useStyles.js');
|
|
9
|
-
var Avatar = require('../../
|
|
9
|
+
var Avatar = require('../../Avatar_cjs_CZ0XJ6d2.js');
|
|
10
10
|
var Group = require('../../Group_cjs_xCUYKUcc.js');
|
|
11
11
|
var Text = require('../../Text_cjs_erTy2pUN.js');
|
|
12
12
|
require('react');
|
|
@@ -28,7 +28,7 @@ require('react-inlinesvg');
|
|
|
28
28
|
require('../hoc/urlWithAssetPrefix.js');
|
|
29
29
|
require('../context/UrlAssetPrefix.js');
|
|
30
30
|
require('../../Link_cjs_Dn7UhCYe.js');
|
|
31
|
-
require('../../
|
|
31
|
+
require('../../Image_cjs_C_FMjUjx.js');
|
|
32
32
|
|
|
33
33
|
const avatarStackAppearanceSize = {
|
|
34
34
|
size16: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Avatar, b as avatarAppearance, a as avatarConfig } from '../
|
|
1
|
+
export { A as Avatar, b as avatarAppearance, a as avatarConfig } from '../Avatar_es_CVr38U27.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import 'react';
|
|
4
4
|
import 'clsx';
|
|
@@ -24,4 +24,4 @@ import '../hooks/useStyles/useStyles.js';
|
|
|
24
24
|
import 'lodash/maxBy';
|
|
25
25
|
import '../Link_es_DPZHTF38.js';
|
|
26
26
|
import '../Text_es_B85LGfjW.js';
|
|
27
|
-
import '../
|
|
27
|
+
import '../Image_es_Ca7UQOkj.js';
|
|
@@ -4,7 +4,7 @@ import { mergeAppearanceKeys } from '../utils/mergeAppearanceKeys.js';
|
|
|
4
4
|
import { useAppearanceConfig } from '../hooks/useAppearanceConfig/useAppearanceConfig.js';
|
|
5
5
|
import { useDevicePropsGenerator } from '../hooks/useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
6
6
|
import { useStyles } from '../hooks/useStyles/useStyles.js';
|
|
7
|
-
import { A as Avatar } from '../
|
|
7
|
+
import { A as Avatar } from '../Avatar_es_CVr38U27.js';
|
|
8
8
|
import { G as Group } from '../Group_es_BVpRj4LR.js';
|
|
9
9
|
import { T as Text } from '../Text_es_B85LGfjW.js';
|
|
10
10
|
import 'react';
|
|
@@ -26,7 +26,7 @@ import 'react-inlinesvg';
|
|
|
26
26
|
import '../hoc/urlWithAssetPrefix.js';
|
|
27
27
|
import '../context/UrlAssetPrefix.js';
|
|
28
28
|
import '../Link_es_DPZHTF38.js';
|
|
29
|
-
import '../
|
|
29
|
+
import '../Image_es_Ca7UQOkj.js';
|
|
30
30
|
|
|
31
31
|
const avatarStackAppearanceSize = {
|
|
32
32
|
size16: {
|
package/dist/components/Image.js
CHANGED