zy-react-library 1.1.0 → 1.1.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.
Files changed (76) hide show
  1. package/README.md +5 -1
  2. package/components/Cascader/Area/index.js +11 -11
  3. package/components/Cascader/Basic/index.js +23 -30
  4. package/components/Cascader/Dictionary/index.js +42 -42
  5. package/components/Cascader/Industry/index.js +12 -11
  6. package/components/Editor/index.js +43 -63
  7. package/components/FormBuilder/FormBuilder.js +97 -87
  8. package/components/FormBuilder/FormItemsRenderer.js +579 -581
  9. package/components/FormBuilder/index.js +5 -3
  10. package/components/HeaderBack/index.js +39 -32
  11. package/components/HiddenInfo/gwj/index.js +507 -439
  12. package/components/Icon/AddIcon/index.js +6 -6
  13. package/components/Icon/BackIcon/index.js +6 -6
  14. package/components/Icon/DeleteIcon/index.js +6 -6
  15. package/components/Icon/DownloadIcon/index.js +6 -6
  16. package/components/Icon/EditIcon/index.js +6 -6
  17. package/components/Icon/ExportIcon/index.js +6 -6
  18. package/components/Icon/ImportIcon/index.js +6 -6
  19. package/components/Icon/LocationIcon/index.js +6 -6
  20. package/components/Icon/PrintIcon/index.js +6 -6
  21. package/components/Icon/ResetIcon/index.js +6 -6
  22. package/components/Icon/SearchIcon/index.js +6 -6
  23. package/components/Icon/VideoIcon/index.js +6 -6
  24. package/components/Icon/ViewIcon/index.js +6 -6
  25. package/components/ImportFile/index.js +94 -91
  26. package/components/LeftTree/Area/index.js +15 -15
  27. package/components/LeftTree/Basic/index.js +54 -65
  28. package/components/LeftTree/Department/Gwj/index.js +29 -32
  29. package/components/LeftTree/Dictionary/index.js +42 -42
  30. package/components/Map/MapSelector.js +280 -254
  31. package/components/Map/index.js +90 -77
  32. package/components/Page/index.d.ts +2 -0
  33. package/components/Page/index.js +44 -34
  34. package/components/Pdf/index.js +92 -90
  35. package/components/PreviewImg/index.js +26 -32
  36. package/components/PreviewPdf/index.js +78 -86
  37. package/components/Search/index.js +147 -141
  38. package/components/Select/Basic/index.js +70 -76
  39. package/components/Select/Dictionary/index.js +42 -42
  40. package/components/Select/Personnel/Gwj/index.js +45 -49
  41. package/components/SelectCreate/index.js +33 -40
  42. package/components/SelectTree/Area/index.js +11 -17
  43. package/components/SelectTree/Basic/index.js +105 -102
  44. package/components/SelectTree/Department/Gwj/index.js +40 -46
  45. package/components/SelectTree/Dictionary/index.js +42 -42
  46. package/components/SelectTree/HiddenLevel/Gwj/index.js +33 -35
  47. package/components/SelectTree/HiddenPart/Gwj/index.js +16 -19
  48. package/components/SelectTree/Industry/index.js +12 -18
  49. package/components/Signature/index.js +68 -62
  50. package/components/Table/index.js +77 -73
  51. package/components/Table/index.less +7 -1
  52. package/components/TooltipPreviewImg/index.js +28 -27
  53. package/components/Upload/index.js +229 -275
  54. package/components/Video/AliPlayer.js +182 -160
  55. package/components/Video/index.js +71 -90
  56. package/css/common.less +4 -0
  57. package/enum/dictionary/index.js +5 -3
  58. package/enum/formItemRender/index.js +37 -35
  59. package/enum/hidden/gwj/index.js +65 -26
  60. package/enum/uploadFile/gwj/index.js +166 -84
  61. package/hooks/useDeleteFile/index.js +24 -30
  62. package/hooks/useDictionary/index.js +28 -30
  63. package/hooks/useDownloadBlob/index.js +78 -77
  64. package/hooks/useDownloadFile/index.js +76 -79
  65. package/hooks/useGetFile/index.js +32 -32
  66. package/hooks/useGetUrlQuery/index.js +1 -2
  67. package/hooks/useGetUserInfo/index.js +19 -26
  68. package/hooks/useIdle/index.js +9 -11
  69. package/hooks/useImportFile/index.js +30 -28
  70. package/hooks/useIsExistenceDuplicateSelection/index.js +25 -18
  71. package/hooks/useTable/index.js +49 -38
  72. package/hooks/useUploadFile/index.js +142 -147
  73. package/hooks/useUrlQueryCriteria/index.js +20 -13
  74. package/package.json +14 -1
  75. package/regular/index.js +34 -39
  76. package/utils/index.js +515 -511
@@ -1,77 +1,90 @@
1
- import { Button, Col, Form, Input, Row } from "antd";
2
- import { useState } from "react";
3
- import MapSelector from "./MapSelector";
4
-
5
- /**
6
- * 定位组件
7
- */
8
- const Map = (props) => {
9
- const {
10
- longitudeProps = "longitude",
11
- latitudeProps = "latitude",
12
- onConfirm,
13
- required = true,
14
- area = "",
15
- showArea = false,
16
- } = props;
17
-
18
- const form = Form.useFormInstance();
19
- const [mapVisible, setMapVisible] = useState(false);
20
- const [currentLongitude, setCurrentLongitude] = useState("");
21
- const [currentLatitude, setCurrentLatitude] = useState("");
22
-
23
- const handleMapConfirm = (longitudeValue, latitudeValue, extra) => {
24
- setCurrentLongitude(longitudeValue);
25
- setCurrentLatitude(latitudeValue);
26
- form.setFieldsValue({
27
- [longitudeProps]: longitudeValue,
28
- [latitudeProps]: latitudeValue,
29
- });
30
- onConfirm?.(longitudeValue, latitudeValue, extra);
31
- setMapVisible(false);
32
- };
33
-
34
- return (
35
- <>
36
- <Row gutter={24}>
37
- <Col span={12}>
38
- <Form.Item label="经度" name={longitudeProps} rules={[{ required, message: "请选择经度" }]}>
39
- <Input disabled />
40
- </Form.Item>
41
- </Col>
42
- <Col span={12}>
43
- <Form.Item label="纬度" required={required}>
44
- <div style={{ display: "flex", gap: 10 }}>
45
- <Form.Item name={latitudeProps} noStyle rules={[{ required, message: "请选择纬度" }]}>
46
- <Input disabled />
47
- </Form.Item>
48
- <Button
49
- type="primary"
50
- onClick={() => {
51
- setMapVisible(true);
52
- setCurrentLongitude(form.getFieldValue(longitudeProps));
53
- setCurrentLatitude(form.getFieldValue(latitudeProps));
54
- }}
55
- >
56
- 地图定位
57
- </Button>
58
- </div>
59
- </Form.Item>
60
- </Col>
61
- </Row>
62
- <MapSelector
63
- visible={mapVisible}
64
- onClose={() => setMapVisible(false)}
65
- longitude={currentLongitude}
66
- latitude={currentLatitude}
67
- area={area}
68
- showArea={showArea}
69
- onConfirm={handleMapConfirm}
70
- />
71
- </>
72
- );
73
- };
74
-
75
- Map.displayName = "Map";
76
-
77
- export default Map;
1
+ import { Form, Row, Col, Input, Button } from 'antd';
2
+ import { useState } from 'react';
3
+ import MapSelector from './MapSelector.js';
4
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
5
+
6
+ const Map = props => {
7
+ const {
8
+ longitudeProps = "longitude",
9
+ latitudeProps = "latitude",
10
+ onConfirm,
11
+ required = true,
12
+ area = "",
13
+ showArea = false
14
+ } = props;
15
+ const form = Form.useFormInstance();
16
+ const [mapVisible, setMapVisible] = useState(false);
17
+ const [currentLongitude, setCurrentLongitude] = useState("");
18
+ const [currentLatitude, setCurrentLatitude] = useState("");
19
+ const handleMapConfirm = (longitudeValue, latitudeValue, extra) => {
20
+ setCurrentLongitude(longitudeValue);
21
+ setCurrentLatitude(latitudeValue);
22
+ form.setFieldsValue({
23
+ [longitudeProps]: longitudeValue,
24
+ [latitudeProps]: latitudeValue
25
+ });
26
+ onConfirm?.(longitudeValue, latitudeValue, extra);
27
+ setMapVisible(false);
28
+ };
29
+ return /*#__PURE__*/jsxs(Fragment, {
30
+ children: [/*#__PURE__*/jsxs(Row, {
31
+ gutter: 24,
32
+ children: [/*#__PURE__*/jsx(Col, {
33
+ span: 12,
34
+ children: /*#__PURE__*/jsx(Form.Item, {
35
+ label: "\u7ECF\u5EA6",
36
+ name: longitudeProps,
37
+ rules: [{
38
+ required,
39
+ message: "请选择经度"
40
+ }],
41
+ children: /*#__PURE__*/jsx(Input, {
42
+ disabled: true
43
+ })
44
+ })
45
+ }), /*#__PURE__*/jsx(Col, {
46
+ span: 12,
47
+ children: /*#__PURE__*/jsx(Form.Item, {
48
+ label: "\u7EAC\u5EA6",
49
+ required: required,
50
+ children: /*#__PURE__*/jsxs("div", {
51
+ style: {
52
+ display: "flex",
53
+ gap: 10
54
+ },
55
+ children: [/*#__PURE__*/jsx(Form.Item, {
56
+ name: latitudeProps,
57
+ noStyle: true,
58
+ rules: [{
59
+ required,
60
+ message: "请选择纬度"
61
+ }],
62
+ children: /*#__PURE__*/jsx(Input, {
63
+ disabled: true
64
+ })
65
+ }), /*#__PURE__*/jsx(Button, {
66
+ type: "primary",
67
+ onClick: () => {
68
+ setMapVisible(true);
69
+ setCurrentLongitude(form.getFieldValue(longitudeProps));
70
+ setCurrentLatitude(form.getFieldValue(latitudeProps));
71
+ },
72
+ children: "\u5730\u56FE\u5B9A\u4F4D"
73
+ })]
74
+ })
75
+ })
76
+ })]
77
+ }), /*#__PURE__*/jsx(MapSelector, {
78
+ visible: mapVisible,
79
+ onClose: () => setMapVisible(false),
80
+ longitude: currentLongitude,
81
+ latitude: currentLatitude,
82
+ area: area,
83
+ showArea: showArea,
84
+ onConfirm: handleMapConfirm
85
+ })]
86
+ });
87
+ };
88
+ Map.displayName = "Map";
89
+
90
+ export { Map as default };
@@ -18,6 +18,8 @@ export interface PageProps {
18
18
  isShowAllAction?: boolean;
19
19
  /** 取消按钮文字,默认 "关闭" */
20
20
  backButtonText?: string;
21
+ /** 内容区域的padding,默认 "20px" */
22
+ contentPadding?: string;
21
23
  /** 自定义底部操作按钮组 */
22
24
  customActionButtons?: ReactNode;
23
25
  /** 额外底部操作按钮组 */
@@ -1,9 +1,7 @@
1
- import { Button, Space } from "antd";
2
- import HeaderBack from "../HeaderBack";
1
+ import { Space, Button } from 'antd';
2
+ import HeaderBack from '../HeaderBack/index.js';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
4
 
4
- /**
5
- * 页面布局组件
6
- */
7
5
  function Page(props) {
8
6
  const {
9
7
  headerTitle,
@@ -13,37 +11,49 @@ function Page(props) {
13
11
  isShowFooter = true,
14
12
  isShowAllAction = true,
15
13
  backButtonText = "关闭",
14
+ contentPadding = "20px",
16
15
  customActionButtons,
17
- extraActionButtons,
16
+ extraActionButtons
18
17
  } = props;
19
-
20
- return (
21
- <div className="page">
22
- {(isShowAllAction && isShowHeader) && <HeaderBack title={headerTitle} history={history} previous={headerPrevious} />}
23
- <div style={{ padding: 20 }}>
24
- {props.children}
25
- </div>
26
- {
27
- (isShowAllAction && isShowFooter) && (
28
- <>
29
- <div style={{ height: "52px" }}></div>
30
- <div style={{ textAlign: "center", backgroundColor: "rgb(241, 241, 242)", margin: "0 -20px", padding: "10px 0", position: "fixed", bottom: "0", width: "100%" }}>
31
- {customActionButtons || (
32
- <Space>
33
- {extraActionButtons}
34
- <Button onClick={() => history?.goBack?.() || window.history.back()}>
35
- {backButtonText}
36
- </Button>
37
- </Space>
38
- )}
39
- </div>
40
- </>
41
- )
42
- }
43
- </div>
44
- );
18
+ return /*#__PURE__*/jsxs("div", {
19
+ className: "page",
20
+ children: [isShowAllAction && isShowHeader && /*#__PURE__*/jsx(HeaderBack, {
21
+ title: headerTitle,
22
+ history: history,
23
+ previous: headerPrevious
24
+ }), /*#__PURE__*/jsx("div", {
25
+ style: {
26
+ padding: contentPadding
27
+ },
28
+ children: props.children
29
+ }), isShowAllAction && isShowFooter && /*#__PURE__*/jsxs("div", {
30
+ style: {
31
+ transform: 'scale(1)',
32
+ margin: '0px -44px'
33
+ },
34
+ children: [/*#__PURE__*/jsx("div", {
35
+ style: {
36
+ height: "52px"
37
+ }
38
+ }), /*#__PURE__*/jsx("div", {
39
+ style: {
40
+ textAlign: "center",
41
+ backgroundColor: "rgb(241, 241, 242)",
42
+ padding: "10px 0",
43
+ position: "fixed",
44
+ bottom: "0",
45
+ width: "100%"
46
+ },
47
+ children: customActionButtons || /*#__PURE__*/jsxs(Space, {
48
+ children: [extraActionButtons, /*#__PURE__*/jsx(Button, {
49
+ onClick: () => history?.goBack?.() || window.history.back(),
50
+ children: backButtonText
51
+ })]
52
+ })
53
+ })]
54
+ })]
55
+ });
45
56
  }
46
-
47
57
  Page.displayName = "Page";
48
58
 
49
- export default Page;
59
+ export { Page as default };
@@ -1,16 +1,14 @@
1
- import { useFullscreen } from "ahooks";
2
- import { Button, message, Modal, Spin } from "antd";
3
- import { useRef, useState } from "react";
4
- import { Document, Page, pdfjs } from "react-pdf";
5
- import useDownloadFile from "../../hooks/useDownloadFile";
6
- import { getFileUrl } from "../../utils";
7
- import "react-pdf/dist/Page/AnnotationLayer.css";
8
- import "react-pdf/dist/Page/TextLayer.css";
9
- import "./index.less";
1
+ import { useFullscreen } from 'ahooks';
2
+ import { Modal, Button, Spin, message } from 'antd';
3
+ import { useState, useRef } from 'react';
4
+ import { pdfjs, Document, Page } from 'react-pdf';
5
+ import useDownloadFile from '../../hooks/useDownloadFile/index.js';
6
+ import { getFileUrl } from '../../utils/index.js';
7
+ import 'react-pdf/dist/Page/AnnotationLayer.css';
8
+ import 'react-pdf/dist/Page/TextLayer.css';
9
+ import './index.less';
10
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
10
11
 
11
- /**
12
- * PDF查看组件
13
- */
14
12
  function Pdf(props) {
15
13
  const {
16
14
  visible = false,
@@ -18,117 +16,121 @@ function Pdf(props) {
18
16
  file,
19
17
  name,
20
18
  inline = false,
21
- style = {},
19
+ style = {}
22
20
  } = props;
23
-
24
21
  const fileUrl = getFileUrl();
25
22
  const [numPages, setNumPages] = useState(0);
26
23
  const [pdfWidth, setPdfWidth] = useState(600);
27
24
  const [loading, setLoading] = useState(true);
28
-
29
25
  const fullscreenRef = useRef(null);
30
-
31
- const [isFullscreen, { enterFullscreen, exitFullscreen }] = useFullscreen(fullscreenRef);
32
- const { downloadFile } = useDownloadFile();
33
-
26
+ const [isFullscreen, {
27
+ enterFullscreen,
28
+ exitFullscreen
29
+ }] = useFullscreen(fullscreenRef);
30
+ const {
31
+ downloadFile
32
+ } = useDownloadFile();
34
33
  pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.mjs`;
35
-
36
- const onDocumentLoadSuccess = ({ numPages }) => {
34
+ const onDocumentLoadSuccess = ({
35
+ numPages
36
+ }) => {
37
37
  setNumPages(numPages);
38
38
  setLoading(false);
39
39
  };
40
-
41
40
  const onDocumentLoadError = () => {
42
41
  setLoading(false);
43
42
  message.error("加载 PDF 文件失败");
44
- if (onCancel)
45
- onCancel();
43
+ if (onCancel) onCancel();
46
44
  };
47
-
48
- const onPageLoadSuccess = ({ width }) => {
45
+ const onPageLoadSuccess = ({
46
+ width
47
+ }) => {
49
48
  setPdfWidth(width);
50
49
  };
51
50
 
52
51
  // 内联模式的PDF内容
53
- const renderPdfContent = () => (
54
- <>
55
- {loading && (
56
- <div style={{ display: "flex", justifyContent: "center", alignItems: "center", height: "72vh" }}>
57
- <Spin size="large" />
58
- </div>
59
- )}
60
- <div style={{ height: isFullscreen ? "calc(100vh - 40px - 24px - 8px - 32px - 12px)" : "72vh", overflowY: "auto", padding: "24px", ...style }}>
61
- <Document
62
- file={!file.includes(fileUrl) ? fileUrl + file : file}
63
- onLoadSuccess={onDocumentLoadSuccess}
64
- onLoadError={onDocumentLoadError}
65
- >
66
- {
67
- Array.from({ length: numPages }).map((_, index) => (
68
- <Page key={`page_${index + 1}`} pageNumber={index + 1} onLoadSuccess={onPageLoadSuccess} />
69
- ))
70
- }
71
- </Document>
72
- </div>
73
- </>
74
- );
52
+ const renderPdfContent = () => /*#__PURE__*/jsxs(Fragment, {
53
+ children: [loading && /*#__PURE__*/jsx("div", {
54
+ style: {
55
+ display: "flex",
56
+ justifyContent: "center",
57
+ alignItems: "center",
58
+ height: "72vh"
59
+ },
60
+ children: /*#__PURE__*/jsx(Spin, {
61
+ size: "large"
62
+ })
63
+ }), /*#__PURE__*/jsx("div", {
64
+ style: {
65
+ height: isFullscreen ? "calc(100vh - 40px - 24px - 8px - 32px - 12px)" : "72vh",
66
+ overflowY: "auto",
67
+ padding: "24px",
68
+ ...style
69
+ },
70
+ children: /*#__PURE__*/jsx(Document, {
71
+ file: !file.includes(fileUrl) ? fileUrl + file : file,
72
+ onLoadSuccess: onDocumentLoadSuccess,
73
+ onLoadError: onDocumentLoadError,
74
+ children: Array.from({
75
+ length: numPages
76
+ }).map((_, index) => /*#__PURE__*/jsx(Page, {
77
+ pageNumber: index + 1,
78
+ onLoadSuccess: onPageLoadSuccess
79
+ }, `page_${index + 1}`))
80
+ })
81
+ })]
82
+ });
75
83
 
76
84
  // 如果是内联模式,直接返回PDF内容
77
85
  if (inline) {
78
86
  return renderPdfContent();
79
87
  }
80
-
81
88
  const onDownloadFile = () => {
82
89
  isFullscreen && exitFullscreen();
83
90
  downloadFile({
84
91
  url: file,
85
- name,
92
+ name
86
93
  });
87
94
  };
88
95
 
89
96
  // 默认弹窗模式
90
- return (
91
- <div ref={fullscreenRef}>
92
- <Modal
93
- style={{ top: isFullscreen ? 0 : 100, maxWidth: isFullscreen ? "100vw" : "calc(100vw - 32px)", paddingBottom: isFullscreen ? 0 : 24 }}
94
- open={visible}
95
- maskClosable={false}
96
- width={isFullscreen ? "100vw" : pdfWidth + 100}
97
- title="PDF预览"
98
- onCancel={() => {
97
+ return /*#__PURE__*/jsx("div", {
98
+ ref: fullscreenRef,
99
+ children: /*#__PURE__*/jsx(Modal, {
100
+ style: {
101
+ top: isFullscreen ? 0 : 100,
102
+ maxWidth: isFullscreen ? "100vw" : "calc(100vw - 32px)",
103
+ paddingBottom: isFullscreen ? 0 : 24
104
+ },
105
+ open: visible,
106
+ maskClosable: false,
107
+ width: isFullscreen ? "100vw" : pdfWidth + 100,
108
+ title: "PDF\u9884\u89C8",
109
+ onCancel: () => {
110
+ isFullscreen && exitFullscreen();
111
+ onCancel();
112
+ },
113
+ getContainer: false,
114
+ footer: [/*#__PURE__*/jsx(Button, {
115
+ onClick: () => {
99
116
  isFullscreen && exitFullscreen();
100
117
  onCancel();
101
- }}
102
- getContainer={false}
103
- footer={[
104
- <Button
105
- key="cancel"
106
- onClick={() => {
107
- isFullscreen && exitFullscreen();
108
- onCancel();
109
- }}
110
- >
111
- 关闭
112
- </Button>,
113
- !loading && (
114
- <Button
115
- key="fullScreen"
116
- onClick={() => {
117
- isFullscreen ? exitFullscreen() : enterFullscreen();
118
- }}
119
- >
120
- {isFullscreen ? "退出全屏" : "全屏"}
121
- </Button>
122
- ),
123
- <Button key="download" type="primary" onClick={onDownloadFile}>下载</Button>,
124
- ]}
125
- >
126
- {renderPdfContent()}
127
- </Modal>
128
- </div>
129
- );
118
+ },
119
+ children: "\u5173\u95ED"
120
+ }, "cancel"), !loading && /*#__PURE__*/jsx(Button, {
121
+ onClick: () => {
122
+ isFullscreen ? exitFullscreen() : enterFullscreen();
123
+ },
124
+ children: isFullscreen ? "退出全屏" : "全屏"
125
+ }, "fullScreen"), /*#__PURE__*/jsx(Button, {
126
+ type: "primary",
127
+ onClick: onDownloadFile,
128
+ children: "\u4E0B\u8F7D"
129
+ }, "download")],
130
+ children: renderPdfContent()
131
+ })
132
+ });
130
133
  }
131
-
132
134
  Pdf.displayName = "Pdf";
133
135
 
134
- export default Pdf;
136
+ export { Pdf as default };
@@ -1,32 +1,26 @@
1
- import { Image } from "antd";
2
- import { getFileUrl } from "../../utils/index";
3
-
4
- /**
5
- * 在查看页面中图片预览组件
6
- */
7
- const PreviewImg = (props) => {
8
- const { files = [], fileUrlKey = "filePath" } = props;
9
-
10
- const fileUrl = getFileUrl();
11
-
12
- return (
13
- <Image.PreviewGroup>
14
- {
15
- files.filter(Boolean).map(item => (
16
- <Image
17
- key={item[fileUrlKey] || item}
18
- src={item[fileUrlKey] ? fileUrl + item[fileUrlKey] : fileUrl + item}
19
- wrapperStyle={{ marginRight: 10, marginBottom: 10 }}
20
- width={100}
21
- height={100}
22
- alt=""
23
- />
24
- ))
25
- }
26
- </Image.PreviewGroup>
27
- );
28
- };
29
-
30
- PreviewImg.displayName = "PreviewImg";
31
-
32
- export default PreviewImg;
1
+ import { Image } from 'antd';
2
+ import { getFileUrl } from '../../utils/index.js';
3
+ import { jsx } from 'react/jsx-runtime';
4
+
5
+ const PreviewImg = props => {
6
+ const {
7
+ files = [],
8
+ fileUrlKey = "filePath"
9
+ } = props;
10
+ const fileUrl = getFileUrl();
11
+ return /*#__PURE__*/jsx(Image.PreviewGroup, {
12
+ children: files.filter(Boolean).map(item => /*#__PURE__*/jsx(Image, {
13
+ src: item[fileUrlKey] ? fileUrl + item[fileUrlKey] : fileUrl + item,
14
+ wrapperStyle: {
15
+ marginRight: 10,
16
+ marginBottom: 10
17
+ },
18
+ width: 100,
19
+ height: 100,
20
+ alt: ""
21
+ }, item[fileUrlKey] || item))
22
+ });
23
+ };
24
+ PreviewImg.displayName = "PreviewImg";
25
+
26
+ export { PreviewImg as default };