@expressms/smartapp-ui 2.4.0 → 2.4.1
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/main//321/201omponents/CachedImage/CachedImage.d.ts +4 -0
- package/build/main//321/201omponents/CachedImage/CachedImage.js +47 -0
- package/build/main//321/201omponents/CachedImage/CachedImage.js.map +1 -0
- package/build/main//321/201omponents/CachedImage/helpers.d.ts +3 -0
- package/build/main//321/201omponents/CachedImage/helpers.js +40 -0
- package/build/main//321/201omponents/CachedImage/helpers.js.map +1 -0
- package/build/main//321/201omponents/CachedImage/index.d.ts +1 -0
- package/build/main//321/201omponents/CachedImage/index.js +2 -0
- package/build/main//321/201omponents/CachedImage/index.js.map +1 -0
- package/build/main//321/201omponents/CachedImage/types.d.ts +8 -0
- package/build/main//321/201omponents/CachedImage/types.js +2 -0
- package/build/main//321/201omponents/CachedImage/types.js.map +1 -0
- package/build/main//321/201omponents/index.d.ts +1 -0
- package/build/main//321/201omponents/index.js +1 -0
- package/build/main//321/201omponents/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useLayoutEffect, useState } from 'react';
|
|
3
|
+
import { isBlobUrl, tryToLoadImageFromCache, tryToSaveImageToCache } from './helpers';
|
|
4
|
+
import '../../styles/styles.scss';
|
|
5
|
+
var IMAGE_LOADING_STATE;
|
|
6
|
+
(function (IMAGE_LOADING_STATE) {
|
|
7
|
+
IMAGE_LOADING_STATE[IMAGE_LOADING_STATE["pending"] = 0] = "pending";
|
|
8
|
+
IMAGE_LOADING_STATE[IMAGE_LOADING_STATE["success"] = 1] = "success";
|
|
9
|
+
IMAGE_LOADING_STATE[IMAGE_LOADING_STATE["error"] = -1] = "error";
|
|
10
|
+
})(IMAGE_LOADING_STATE || (IMAGE_LOADING_STATE = {}));
|
|
11
|
+
var CachedImage = function (_a) {
|
|
12
|
+
var src = _a.src, alt = _a.alt, className = _a.className, width = _a.width, height = _a.height, borderRadius = _a.borderRadius;
|
|
13
|
+
var _b = useState(''), url = _b[0], setUrl = _b[1];
|
|
14
|
+
var _c = useState(IMAGE_LOADING_STATE.pending), loadingState = _c[0], setLoadingState = _c[1];
|
|
15
|
+
useLayoutEffect(function () {
|
|
16
|
+
setUrl(src);
|
|
17
|
+
}, [src]);
|
|
18
|
+
// Очистка URL объекта после ошибки загрузки изображения
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
if (loadingState === IMAGE_LOADING_STATE.error && isBlobUrl(url))
|
|
21
|
+
URL.revokeObjectURL(url);
|
|
22
|
+
return function () { return void 0; };
|
|
23
|
+
}, [loadingState, url]);
|
|
24
|
+
var isImageLoadingStatePending = function () { return loadingState === IMAGE_LOADING_STATE.pending; };
|
|
25
|
+
// Обработчик успешной загрузки изображения
|
|
26
|
+
var handleOnLoad = function () {
|
|
27
|
+
if (!isImageLoadingStatePending())
|
|
28
|
+
return;
|
|
29
|
+
setLoadingState(IMAGE_LOADING_STATE.success);
|
|
30
|
+
tryToSaveImageToCache(src);
|
|
31
|
+
};
|
|
32
|
+
// Обработчик ошибки загрузки изображения
|
|
33
|
+
var handleOnError = function () {
|
|
34
|
+
if (!isImageLoadingStatePending())
|
|
35
|
+
return;
|
|
36
|
+
setLoadingState(IMAGE_LOADING_STATE.error);
|
|
37
|
+
tryToLoadImageFromCache(src).then(function (blobUrl) { return blobUrl && setUrl(blobUrl); });
|
|
38
|
+
};
|
|
39
|
+
var generateImageStyles = function () { return ({
|
|
40
|
+
width: width ? "".concat(width, "px") : '100%',
|
|
41
|
+
height: height ? "".concat(height, "px") : '100%',
|
|
42
|
+
borderRadius: "".concat(borderRadius, "px"),
|
|
43
|
+
}); };
|
|
44
|
+
return _jsx("img", { className: className, style: generateImageStyles(), src: url, alt: alt, onLoad: handleOnLoad, onError: handleOnError });
|
|
45
|
+
};
|
|
46
|
+
export default CachedImage;
|
|
47
|
+
//# sourceMappingURL=CachedImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CachedImage.js","sourceRoot":"","sources":["../../../../src/сomponents/CachedImage/CachedImage.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA;AAErF,OAAO,0BAA0B,CAAA;AAEjC,IAAK,mBAIJ;AAJD,WAAK,mBAAmB;IACtB,mEAAa,CAAA;IACb,mEAAa,CAAA;IACb,gEAAY,CAAA;AACd,CAAC,EAJI,mBAAmB,KAAnB,mBAAmB,QAIvB;AAED,IAAM,WAAW,GAAG,UAAC,EAAuE;QAArE,GAAG,SAAA,EAAE,GAAG,SAAA,EAAE,SAAS,eAAA,EAAE,KAAK,WAAA,EAAE,MAAM,YAAA,EAAE,YAAY,kBAAA;IAC/D,IAAA,KAAgB,QAAQ,CAAC,EAAE,CAAC,EAA3B,GAAG,QAAA,EAAE,MAAM,QAAgB,CAAA;IAC5B,IAAA,KAAkC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAtE,YAAY,QAAA,EAAE,eAAe,QAAyC,CAAA;IAE7E,eAAe,CAAC;QACd,MAAM,CAAC,GAAG,CAAC,CAAA;IACb,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;IAET,wDAAwD;IACxD,SAAS,CAAC;QACR,IAAI,YAAY,KAAK,mBAAmB,CAAC,KAAK,IAAI,SAAS,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QAC1F,OAAO,cAAM,OAAA,KAAK,CAAC,EAAN,CAAM,CAAA;IACrB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAA;IAEvB,IAAM,0BAA0B,GAAG,cAAM,OAAA,YAAY,KAAK,mBAAmB,CAAC,OAAO,EAA5C,CAA4C,CAAA;IAErF,2CAA2C;IAC3C,IAAM,YAAY,GAAG;QACnB,IAAI,CAAC,0BAA0B,EAAE;YAAE,OAAM;QAEzC,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAA;QAC5C,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,yCAAyC;IACzC,IAAM,aAAa,GAAG;QACpB,IAAI,CAAC,0BAA0B,EAAE;YAAE,OAAM;QAEzC,eAAe,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1C,uBAAuB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,EAA1B,CAA0B,CAAC,CAAA;IAC5E,CAAC,CAAA;IAED,IAAM,mBAAmB,GAAG,cAAM,OAAA,CAAC;QACjC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,UAAG,KAAK,OAAI,CAAC,CAAC,CAAC,MAAM;QACpC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,UAAG,MAAM,OAAI,CAAC,CAAC,CAAC,MAAM;QACvC,YAAY,EAAE,UAAG,YAAY,OAAI;KAClC,CAAC,EAJgC,CAIhC,CAAA;IAEF,OAAO,cAAK,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAI,CAAA;AACtI,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
var SMARTAPP_CACHE_STORAGE = 'smartapp-cache-storage';
|
|
2
|
+
var NETWORK_RESPONSE_ERROR = 'Network response was not ok';
|
|
3
|
+
var FAILED_TO_SAVE_IMAGE_TO_CACHE = 'Failed to save image to cache';
|
|
4
|
+
// Загрузка изображения из кэша
|
|
5
|
+
export var tryToLoadImageFromCache = function (url) {
|
|
6
|
+
return caches
|
|
7
|
+
.open(SMARTAPP_CACHE_STORAGE)
|
|
8
|
+
.then(function (cache) { return cache.match(url); })
|
|
9
|
+
.then(function (response) { return (response === null || response === void 0 ? void 0 : response.blob()) || null; })
|
|
10
|
+
.then(function (blob) { return (blob ? URL.createObjectURL(blob) : null); })
|
|
11
|
+
.catch(function () { return null; });
|
|
12
|
+
};
|
|
13
|
+
// Сохранение изображения в кэш
|
|
14
|
+
var saveImageToCache = function (url) {
|
|
15
|
+
return fetch(url, {
|
|
16
|
+
credentials: 'include',
|
|
17
|
+
})
|
|
18
|
+
.then(function (response) {
|
|
19
|
+
if (!response.ok)
|
|
20
|
+
throw new Error(NETWORK_RESPONSE_ERROR);
|
|
21
|
+
return caches.open(SMARTAPP_CACHE_STORAGE).then(function (cache) { return cache.put(url, response); });
|
|
22
|
+
})
|
|
23
|
+
.catch(function (error) { return console.error("".concat(FAILED_TO_SAVE_IMAGE_TO_CACHE, ":"), error); });
|
|
24
|
+
};
|
|
25
|
+
// Проверка наличия изображения в кэше и сохранение его при отсутствии
|
|
26
|
+
export var tryToSaveImageToCache = function (url) {
|
|
27
|
+
if (!url)
|
|
28
|
+
return Promise.resolve();
|
|
29
|
+
return caches
|
|
30
|
+
.open(SMARTAPP_CACHE_STORAGE)
|
|
31
|
+
.then(function (cache) { return cache.match(url); })
|
|
32
|
+
.then(function (response) {
|
|
33
|
+
if (!response)
|
|
34
|
+
return saveImageToCache(url);
|
|
35
|
+
return Promise.resolve();
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
// Функция для проверки, является ли URL объектом Blob
|
|
39
|
+
export var isBlobUrl = function (url) { return url.indexOf('blob:') === 0; };
|
|
40
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../src/сomponents/CachedImage/helpers.ts"],"names":[],"mappings":"AAAA,IAAM,sBAAsB,GAAG,wBAAwB,CAAA;AACvD,IAAM,sBAAsB,GAAG,6BAA6B,CAAA;AAC5D,IAAM,6BAA6B,GAAG,+BAA+B,CAAA;AAErE,+BAA+B;AAC/B,MAAM,CAAC,IAAM,uBAAuB,GAAG,UAAC,GAAW;IACjD,OAAA,MAAM;SACH,IAAI,CAAC,sBAAsB,CAAC;SAC5B,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC;SACjC,IAAI,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE,KAAI,IAAI,EAAxB,CAAwB,CAAC;SAC5C,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAzC,CAAyC,CAAC;SACzD,KAAK,CAAC,cAAM,OAAA,IAAI,EAAJ,CAAI,CAAC;AALpB,CAKoB,CAAA;AAEtB,+BAA+B;AAC/B,IAAM,gBAAgB,GAAG,UAAC,GAAW;IACnC,OAAA,KAAK,CAAC,GAAG,EAAE;QACT,WAAW,EAAE,SAAS;KACvB,CAAC;SACC,IAAI,CAAC,UAAC,QAAQ;QACb,IAAI,CAAC,QAAQ,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAxB,CAAwB,CAAC,CAAA;IACtF,CAAC,CAAC;SACD,KAAK,CAAC,UAAC,KAAK,IAAK,OAAA,OAAO,CAAC,KAAK,CAAC,UAAG,6BAA6B,MAAG,EAAE,KAAK,CAAC,EAAzD,CAAyD,CAAC;AAP9E,CAO8E,CAAA;AAEhF,sEAAsE;AACtE,MAAM,CAAC,IAAM,qBAAqB,GAAG,UAAC,GAAW;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAElC,OAAO,MAAM;SACV,IAAI,CAAC,sBAAsB,CAAC;SAC5B,IAAI,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC;SACjC,IAAI,CAAC,UAAC,QAAQ;QACb,IAAI,CAAC,QAAQ;YAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAA;QAC3C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC,CAAC,CAAA;AACN,CAAC,CAAA;AAED,sDAAsD;AACtD,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,GAAW,IAAK,OAAA,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAA1B,CAA0B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './CachedImage';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/сomponents/CachedImage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/сomponents/CachedImage/types.ts"],"names":[],"mappings":""}
|
|
@@ -26,4 +26,5 @@ export { default as ContextMenu } from './ContextMenu';
|
|
|
26
26
|
export { default as UserDropdown } from './UserDropdown';
|
|
27
27
|
export { Skeleton } from './Skeleton';
|
|
28
28
|
export { default as ListItem } from './ListItem';
|
|
29
|
+
export { default as CachedImage } from './CachedImage';
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/сomponents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/сomponents/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAA;AACxC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,SAAS,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAA"}
|