@dreamcommerce/aurora 2.8.7 → 2.8.8-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/cjs/packages/aurora/src/components/image_picker/index.js +3 -0
- package/build/cjs/packages/aurora/src/components/image_picker/index.js.map +1 -1
- package/build/cjs/packages/aurora/src/components/xhr_image_picker/index.js +1 -0
- package/build/cjs/packages/aurora/src/components/xhr_image_picker/index.js.map +1 -1
- package/build/esm/packages/aurora/src/components/controls/hoc/control_image_list/index.d.ts +4 -0
- package/build/esm/packages/aurora/src/components/controls/hoc/control_image_list/index.js +13 -0
- package/build/esm/packages/aurora/src/components/controls/hoc/control_image_list/index.js.map +1 -0
- package/build/esm/packages/aurora/src/components/controls/types.d.ts +7 -2
- package/build/esm/packages/aurora/src/components/controls/types.js +3 -2
- package/build/esm/packages/aurora/src/components/controls/types.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_list/constants.d.ts +3 -0
- package/build/esm/packages/aurora/src/components/image_list/constants.js +4 -0
- package/build/esm/packages/aurora/src/components/image_list/constants.js.map +1 -0
- package/build/esm/packages/aurora/src/components/image_list/index.d.ts +4 -0
- package/build/esm/packages/aurora/src/components/image_list/index.js +56 -0
- package/build/esm/packages/aurora/src/components/image_list/index.js.map +1 -0
- package/build/esm/packages/aurora/src/components/image_list/types.d.ts +14 -0
- package/build/esm/packages/aurora/src/components/image_list/types.js +2 -0
- package/build/esm/packages/aurora/src/components/image_list/types.js.map +1 -0
- package/build/esm/packages/aurora/src/components/image_list/use_image_list.d.ts +13 -0
- package/build/esm/packages/aurora/src/components/image_list/use_image_list.js +61 -0
- package/build/esm/packages/aurora/src/components/image_list/use_image_list.js.map +1 -0
- package/build/esm/packages/aurora/src/components/image_list/utils.d.ts +1 -0
- package/build/esm/packages/aurora/src/components/image_list/utils.js +2 -0
- package/build/esm/packages/aurora/src/components/image_list/utils.js.map +1 -0
- package/build/esm/packages/aurora/src/components/image_picker/index.js +3 -0
- package/build/esm/packages/aurora/src/components/image_picker/index.js.map +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/types.d.ts +5 -1
- package/build/esm/packages/aurora/src/components/image_picker/types.js +1 -1
- package/build/esm/packages/aurora/src/components/image_picker/types.js.map +1 -1
- package/build/esm/packages/aurora/src/components/xhr_image_picker/index.js +1 -0
- package/build/esm/packages/aurora/src/components/xhr_image_picker/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -42,10 +42,12 @@ const ImagePicker = React.memo(({ id, onChange, onError, errors: initialErrors,
|
|
|
42
42
|
onImageSizeUpdated === null || onImageSizeUpdated === void 0 ? void 0 : onImageSizeUpdated(imageSize);
|
|
43
43
|
}, [imageSize]);
|
|
44
44
|
React.useEffect(() => {
|
|
45
|
+
console.log('useEffect - initialFile');
|
|
45
46
|
initialFile && setImageSizeBasedOnUrl(initialFile === null || initialFile === void 0 ? void 0 : initialFile.fileUrl);
|
|
46
47
|
}, [initialFile]);
|
|
47
48
|
const setImageSizeBasedOnUrl = (fileUrl) => {
|
|
48
49
|
createImageFromUrl(fileUrl).then((image) => {
|
|
50
|
+
console.log('setImageSizeBasedOnUrl', image.naturalWidth);
|
|
49
51
|
setImageSize({ width: image.naturalWidth, height: image.naturalHeight });
|
|
50
52
|
});
|
|
51
53
|
};
|
|
@@ -76,6 +78,7 @@ const ImagePicker = React.memo(({ id, onChange, onError, errors: initialErrors,
|
|
|
76
78
|
};
|
|
77
79
|
const updateFile = (files) => {
|
|
78
80
|
if (files === null || files === void 0 ? void 0 : files.length) {
|
|
81
|
+
console.log('updateFile');
|
|
79
82
|
setImageSizeBasedOnUrl(URL.createObjectURL(files === null || files === void 0 ? void 0 : files[0]));
|
|
80
83
|
}
|
|
81
84
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAqE;AAClG,2BAA2B,yDAA6D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAqE;AAClG,2BAA2B,yDAA6D;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -38,6 +38,7 @@ const XhrImagePicker = ({ id, url, name, onUploaded, initialFile, errors, onErro
|
|
|
38
38
|
pendingRequestRef.current = cancelRequest;
|
|
39
39
|
const data = await response;
|
|
40
40
|
onUploaded === null || onUploaded === void 0 ? void 0 : onUploaded(data, fileList[0]);
|
|
41
|
+
onImageSizeUpdated && onImageSizeUpdated();
|
|
41
42
|
};
|
|
42
43
|
React.useEffect(() => {
|
|
43
44
|
return () => { var _a; return (_a = pendingRequestRef.current) === null || _a === void 0 ? void 0 : _a.call(pendingRequestRef); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Control from '../../index';
|
|
2
|
+
import '@auroraComponents/controls/types';
|
|
3
|
+
import ImageList from '@auroraComponents/image_list';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
const ControlImageList = ({ id, name, label, isRequired, errors, buttonText, ...props }) => {
|
|
6
|
+
return (React.createElement(Control, { errors: errors, name: name, id: id },
|
|
7
|
+
React.createElement(Control.Content, null,
|
|
8
|
+
React.createElement(Control.Element, null,
|
|
9
|
+
React.createElement(ImageList, { id: id, buttonText: buttonText }))),
|
|
10
|
+
React.createElement(Control.Errors, null)));
|
|
11
|
+
};
|
|
12
|
+
export default ControlImageList;
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../../src/components/controls/hoc/control_image_list/index.tsx"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,aAAa,CAAC;AAClC,OAAuC,kCAAkC,CAAC;AAC1E,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,gBAAgB,GAAqC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACzH,OAAO,CACH,oBAAC,OAAO,IAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE;QACvC,oBAAC,OAAO,CAAC,OAAO;YACZ,oBAAC,OAAO,CAAC,OAAO;gBACZ,oBAAC,SAAS,IAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,GAAI,CAC/B,CACJ;QAElB,oBAAC,OAAO,CAAC,MAAM,OAAG,CACZ,CACb,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { HTMLAttributes, InputHTMLAttributes, ReactElement, ReactNode, Ref, TextareaHTMLAttributes } from 'react';
|
|
2
|
+
import { IImagePicker, TImageSize } from "../image_picker/types";
|
|
2
3
|
import { IMultiSelectProps, ISelectProps } from "../dropdown/types";
|
|
3
4
|
import { IColorPickerProps } from "../color_picker/types";
|
|
4
5
|
import { IFilePicker } from "../file_picker/types";
|
|
6
|
+
import { IImageListProps } from "../image_list/types";
|
|
5
7
|
import { IRange } from "../range/types";
|
|
8
|
+
import { IRequestResponse } from '@dreamcommerce/star_core';
|
|
6
9
|
import React from 'react';
|
|
7
10
|
import { TVerticalPosition } from "../../typings/general";
|
|
8
|
-
import { IImagePicker, TImageSize } from "../image_picker/types";
|
|
9
|
-
import { IRequestResponse } from '@dreamcommerce/star_core';
|
|
10
11
|
export declare type TControlErrors = string[] | null | undefined;
|
|
11
12
|
export interface IControlContext {
|
|
12
13
|
errors?: TControlErrors;
|
|
@@ -194,4 +195,8 @@ export interface IControlCellSelector extends ICellSelector, IControlCommonProps
|
|
|
194
195
|
isRequired?: boolean;
|
|
195
196
|
labelAdditionalInfo?: string | ReactNode;
|
|
196
197
|
}
|
|
198
|
+
export interface IControlImageListProps extends IImageListProps, IControlCommonProps {
|
|
199
|
+
label?: string;
|
|
200
|
+
name?: string;
|
|
201
|
+
}
|
|
197
202
|
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import 'react';
|
|
2
|
+
import '@auroraComponents/image_picker/types';
|
|
2
3
|
import '@auroraComponents/dropdown/types';
|
|
3
4
|
import '@auroraComponents/color_picker/types';
|
|
4
5
|
import '@auroraComponents/file_picker/types';
|
|
6
|
+
import '@auroraComponents/image_list/types';
|
|
5
7
|
import '@auroraComponents/range/types';
|
|
8
|
+
import '@dreamcommerce/star_core';
|
|
6
9
|
import 'react';
|
|
7
10
|
import '@auroraTypings/general';
|
|
8
|
-
import '@auroraComponents/image_picker/types';
|
|
9
|
-
import '@dreamcommerce/star_core';
|
|
10
11
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/controls/types.ts"],"names":[],"mappings":"AAAA,OAA0G,OAAO,CAAC;AAClH,OAAgD,kCAAkC,CAAC;AAEnF,OAAkC,sCAAsC,CAAC;AACzE,OAA4B,qCAAqC,CAAC;AAClE,OAAuB,+BAA+B,CAAC;AACvD,OAAkB,OAAO,CAAC;AAC1B,OAAkC,wBAAwB,CAAC
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/controls/types.ts"],"names":[],"mappings":"AAAA,OAA0G,OAAO,CAAC;AAClH,OAAyC,sCAAsC,CAAC;AAChF,OAAgD,kCAAkC,CAAC;AAEnF,OAAkC,sCAAsC,CAAC;AACzE,OAA4B,qCAAqC,CAAC;AAClE,OAAgC,oCAAoC,CAAC;AACrE,OAAuB,+BAA+B,CAAC;AACvD,OAAiC,0BAA0B,CAAC;AAC5D,OAAkB,OAAO,CAAC;AAC1B,OAAkC,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../src/components/image_list/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC7B,SAAS,EAAE,gBAAgB;CAC9B,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { AbsoluteModal, Button, ControlInput, Modal, Spacing } from '@dreamcommerce-package';
|
|
2
|
+
import './types';
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { useImageList } from './use_image_list';
|
|
5
|
+
import { useTranslation } from 'react-i18next';
|
|
6
|
+
const ImageList = ({ id, buttonText, onNameChange, onUrlChange, ...props }) => {
|
|
7
|
+
const [t] = useTranslation();
|
|
8
|
+
const [modalIsVisible, setModalIsVisible] = useState(false);
|
|
9
|
+
const [slideList, setSlideList] = useState([]);
|
|
10
|
+
const { onSlideNameChange, onSlideNameBlur, onSlideUrlChange, clear, validate, slideName, slideUrl, slideNameErrors, errors } = useImageList({
|
|
11
|
+
onNameChange,
|
|
12
|
+
onUrlChange
|
|
13
|
+
});
|
|
14
|
+
const handleShowModal = () => {
|
|
15
|
+
setModalIsVisible(true);
|
|
16
|
+
};
|
|
17
|
+
const handleHideModal = () => {
|
|
18
|
+
setModalIsVisible(false);
|
|
19
|
+
clear();
|
|
20
|
+
};
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
console.log('errors', errors);
|
|
23
|
+
}, [errors]);
|
|
24
|
+
const onSubmit = () => {
|
|
25
|
+
validate();
|
|
26
|
+
if (!errors.length) {
|
|
27
|
+
console.log('onSubmit');
|
|
28
|
+
const slideItem = {
|
|
29
|
+
name: slideName,
|
|
30
|
+
url: slideUrl
|
|
31
|
+
};
|
|
32
|
+
setSlideList([...slideList, slideItem]);
|
|
33
|
+
setModalIsVisible(false);
|
|
34
|
+
// clear();
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
return (React.createElement(React.Fragment, null,
|
|
38
|
+
React.createElement(Button, { onClick: handleShowModal }, t(`${buttonText}`)),
|
|
39
|
+
React.createElement(React.Fragment, null, slideList &&
|
|
40
|
+
slideList.map((slide, index) => {
|
|
41
|
+
return (React.createElement("div", { key: `${slide.name}-${index}` },
|
|
42
|
+
React.createElement("p", null, slide.name),
|
|
43
|
+
React.createElement("p", null, slide.url)));
|
|
44
|
+
})),
|
|
45
|
+
React.createElement(AbsoluteModal, { isVisible: modalIsVisible },
|
|
46
|
+
React.createElement(Modal.Header, { title: t('Add slide'), closeAction: handleHideModal }),
|
|
47
|
+
React.createElement(Modal.Content, null,
|
|
48
|
+
React.createElement(ControlInput, { id: `${id}-slide-name`, name: `${id}-slide-name`, type: "text", value: slideName, isRequired: true, label: t('Name'), onChange: onSlideNameChange, onBlur: onSlideNameBlur, errors: slideNameErrors }),
|
|
49
|
+
React.createElement(ControlInput, { id: `${id}-slide-url`, name: `${id}-slide-url`, type: "text", value: slideUrl, label: t('Link URL'), onChange: onSlideUrlChange, placeholder: "https://" })),
|
|
50
|
+
React.createElement(Modal.Footer, null,
|
|
51
|
+
React.createElement(Button, { variant: "outline", size: "small", onClick: handleHideModal }, t('Cancel')),
|
|
52
|
+
React.createElement(Spacing, { as: "span", "ml-xs": 2 },
|
|
53
|
+
React.createElement(Button, { onClick: onSubmit, size: "small" }, t('Save')))))));
|
|
54
|
+
};
|
|
55
|
+
export default ImageList;
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/components/image_list/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface IImageListProps {
|
|
2
|
+
id: string;
|
|
3
|
+
buttonText: string;
|
|
4
|
+
onNameChange?: (name: string) => void;
|
|
5
|
+
onUrlChange?: (url: string) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface IImageListSlide {
|
|
8
|
+
name: string;
|
|
9
|
+
url: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IUseImageListProps {
|
|
12
|
+
onNameChange?: (name: string) => void;
|
|
13
|
+
onUrlChange?: (url: string) => void;
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/image_list/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IUseImageListProps } from './types';
|
|
3
|
+
export declare const useImageList: ({ onNameChange, onUrlChange }: IUseImageListProps) => {
|
|
4
|
+
onSlideNameChange: ({ target: { value } }: React.ChangeEvent<HTMLInputElement>) => void;
|
|
5
|
+
onSlideNameBlur: ({ target: { value } }: React.ChangeEvent<HTMLInputElement>) => void;
|
|
6
|
+
onSlideUrlChange: ({ target: { value } }: React.ChangeEvent<HTMLInputElement>) => void;
|
|
7
|
+
clear: () => void;
|
|
8
|
+
validate: () => void;
|
|
9
|
+
slideName: string;
|
|
10
|
+
slideUrl: string;
|
|
11
|
+
slideNameErrors: string[] | undefined;
|
|
12
|
+
errors: string[];
|
|
13
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { IMAGE_LIST_ERRORS } from './constants';
|
|
3
|
+
import './types';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import { valueIsEmpty } from './utils';
|
|
6
|
+
export const useImageList = ({ onNameChange, onUrlChange }) => {
|
|
7
|
+
const [t] = useTranslation();
|
|
8
|
+
const [errors, setErrors] = useState([]);
|
|
9
|
+
const [slideName, setSlideName] = useState('');
|
|
10
|
+
const [slideNameErrors, setSlideNameErrors] = useState(undefined);
|
|
11
|
+
const [slideUrl, setSlideUrl] = useState('');
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
handleSetErrors(slideNameErrors, IMAGE_LIST_ERRORS.nameError);
|
|
14
|
+
}, [slideNameErrors]);
|
|
15
|
+
const handleSetErrors = (fieldErrors, errorName) => {
|
|
16
|
+
if (fieldErrors && fieldErrors.length) {
|
|
17
|
+
setErrors((current) => {
|
|
18
|
+
return current.includes(errorName) ? [...current] : [...current, errorName];
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
setErrors((current) => current.filter((err) => err !== errorName));
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
const onSlideNameChange = ({ target: { value } }) => {
|
|
26
|
+
onNameChange === null || onNameChange === void 0 ? void 0 : onNameChange(value);
|
|
27
|
+
setSlideName(value);
|
|
28
|
+
setSlideNameErrors(undefined);
|
|
29
|
+
};
|
|
30
|
+
const onSlideNameBlur = ({ target: { value } }) => {
|
|
31
|
+
validateNameField();
|
|
32
|
+
};
|
|
33
|
+
const onSlideUrlChange = ({ target: { value } }) => {
|
|
34
|
+
onUrlChange === null || onUrlChange === void 0 ? void 0 : onUrlChange(value);
|
|
35
|
+
setSlideUrl(value);
|
|
36
|
+
};
|
|
37
|
+
const clear = () => {
|
|
38
|
+
setSlideName('');
|
|
39
|
+
setSlideUrl('');
|
|
40
|
+
setSlideNameErrors(undefined);
|
|
41
|
+
};
|
|
42
|
+
const validateNameField = () => {
|
|
43
|
+
if (valueIsEmpty(slideName))
|
|
44
|
+
setSlideNameErrors([t('Field is required')]);
|
|
45
|
+
};
|
|
46
|
+
const validate = () => {
|
|
47
|
+
validateNameField();
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
onSlideNameChange,
|
|
51
|
+
onSlideNameBlur,
|
|
52
|
+
onSlideUrlChange,
|
|
53
|
+
clear,
|
|
54
|
+
validate,
|
|
55
|
+
slideName,
|
|
56
|
+
slideUrl,
|
|
57
|
+
slideNameErrors,
|
|
58
|
+
errors
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=use_image_list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use_image_list.js","sourceRoot":"","sources":["../../../../../../../src/components/image_list/use_image_list.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const valueIsEmpty: (value: string) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../src/components/image_list/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC"}
|
|
@@ -33,10 +33,12 @@ const ImagePicker = memo(({ id, onChange, onError, errors: initialErrors, allowe
|
|
|
33
33
|
onImageSizeUpdated === null || onImageSizeUpdated === void 0 ? void 0 : onImageSizeUpdated(imageSize);
|
|
34
34
|
}, [imageSize]);
|
|
35
35
|
useEffect(() => {
|
|
36
|
+
console.log('useEffect - initialFile');
|
|
36
37
|
initialFile && setImageSizeBasedOnUrl(initialFile === null || initialFile === void 0 ? void 0 : initialFile.fileUrl);
|
|
37
38
|
}, [initialFile]);
|
|
38
39
|
const setImageSizeBasedOnUrl = (fileUrl) => {
|
|
39
40
|
createImageFromUrl(fileUrl).then((image) => {
|
|
41
|
+
console.log('setImageSizeBasedOnUrl', image.naturalWidth);
|
|
40
42
|
setImageSize({ width: image.naturalWidth, height: image.naturalHeight });
|
|
41
43
|
});
|
|
42
44
|
};
|
|
@@ -67,6 +69,7 @@ const ImagePicker = memo(({ id, onChange, onError, errors: initialErrors, allowe
|
|
|
67
69
|
};
|
|
68
70
|
const updateFile = (files) => {
|
|
69
71
|
if (files === null || files === void 0 ? void 0 : files.length) {
|
|
72
|
+
console.log('updateFile');
|
|
70
73
|
setImageSizeBasedOnUrl(URL.createObjectURL(files === null || files === void 0 ? void 0 : files[0]));
|
|
71
74
|
}
|
|
72
75
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG,gCAAgC,yDAA6D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,iEAAqE;AACpG,gCAAgC,yDAA6D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { IFilePicker, TFilesExtension } from "../file_picker/types";
|
|
2
|
+
import React from 'react';
|
|
3
3
|
export declare type TImagePickerFile = {
|
|
4
4
|
fileUrl: string;
|
|
5
5
|
fileName: string;
|
|
@@ -27,3 +27,7 @@ export declare type TImageSize = {
|
|
|
27
27
|
width: number;
|
|
28
28
|
height: number;
|
|
29
29
|
};
|
|
30
|
+
export declare type TImageData = {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/image_picker/types.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../src/components/image_picker/types.ts"],"names":[],"mappings":"AAAA,OAA6C,qCAAqC,CAAC;AAEnF,OAAkB,OAAO,CAAC"}
|
|
@@ -30,6 +30,7 @@ const XhrImagePicker = ({ id, url, name, onUploaded, initialFile, errors, onErro
|
|
|
30
30
|
pendingRequestRef.current = cancelRequest;
|
|
31
31
|
const data = await response;
|
|
32
32
|
onUploaded === null || onUploaded === void 0 ? void 0 : onUploaded(data, fileList[0]);
|
|
33
|
+
onImageSizeUpdated && onImageSizeUpdated();
|
|
33
34
|
};
|
|
34
35
|
useEffect(() => {
|
|
35
36
|
return () => { var _a; return (_a = pendingRequestRef.current) === null || _a === void 0 ? void 0 : _a.call(pendingRequestRef); };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|
|
1
|
+
{"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
|