@tecsinapse/cortex-react 1.15.0-beta.11 → 1.15.0-beta.12
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/cjs/hooks/useFileUpload.js +4 -17
- package/dist/cjs/provider/ManagerContext.js +92 -2
- package/dist/esm/hooks/useFileUpload.js +4 -17
- package/dist/esm/provider/ManagerContext.js +92 -2
- package/dist/types/hooks/useFileUpload.d.ts +1 -1
- package/dist/types/provider/ManagerContext.d.ts +6 -0
- package/package.json +2 -2
|
@@ -33,7 +33,8 @@ const useFileUpload = ({
|
|
|
33
33
|
files,
|
|
34
34
|
setFiles,
|
|
35
35
|
isOpen: isManagerOpen,
|
|
36
|
-
setIsOpen: setIsManagerOpen
|
|
36
|
+
setIsOpen: setIsManagerOpen,
|
|
37
|
+
uploadFiles
|
|
37
38
|
} = ManagerContext.useManager();
|
|
38
39
|
const [duplicates, setDuplicates] = React.useState([]);
|
|
39
40
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
@@ -83,31 +84,17 @@ const useFileUpload = ({
|
|
|
83
84
|
uid: uuid.v4(),
|
|
84
85
|
isFolder
|
|
85
86
|
}));
|
|
86
|
-
|
|
87
|
-
setFiles((prevFiles) => [...prevFiles, ...newFiles]);
|
|
88
|
-
if (onAccept) {
|
|
89
|
-
const updatedFiles = await onAccept(newFiles);
|
|
90
|
-
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
91
|
-
}
|
|
92
|
-
} catch (e) {
|
|
93
|
-
const updatedFiles = newFiles.map((f) => ({
|
|
94
|
-
...f,
|
|
95
|
-
status: types.FileStatus.ERROR
|
|
96
|
-
}));
|
|
97
|
-
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
98
|
-
}
|
|
87
|
+
uploadFiles({ onAccept, newFiles, updateFiles });
|
|
99
88
|
};
|
|
100
89
|
React.useEffect(() => {
|
|
101
90
|
if (hasManager) {
|
|
102
91
|
showManager?.({
|
|
103
|
-
files,
|
|
104
92
|
onClose: closeManager,
|
|
105
93
|
onDelete: handleRemoveFile,
|
|
106
|
-
open: isManagerOpen,
|
|
107
94
|
uploadProgressText
|
|
108
95
|
});
|
|
109
96
|
}
|
|
110
|
-
}, [
|
|
97
|
+
}, [handleRemoveFile, closeManager]);
|
|
111
98
|
const addMimeTypes = (key, acc) => {
|
|
112
99
|
types.AcceptSpecificMap[key].forEach((mimeType) => {
|
|
113
100
|
acc[mimeType] = [];
|
|
@@ -3,22 +3,112 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var Manager = require('../components/Uploader/Manager.js');
|
|
6
|
+
require('clsx');
|
|
7
|
+
require('../components/Accordion/context.js');
|
|
8
|
+
require('react-icons/lia');
|
|
9
|
+
require('@internationalized/date');
|
|
10
|
+
require('../components/Badge.js');
|
|
11
|
+
require('react-icons/md');
|
|
12
|
+
require('../components/Card.js');
|
|
13
|
+
require('../components/Button.js');
|
|
14
|
+
require('react-aria');
|
|
15
|
+
require('react-stately');
|
|
16
|
+
require('./MenubarContext.js');
|
|
17
|
+
require('./SnackbarProvider.js');
|
|
18
|
+
require('./CalendarProvider.js');
|
|
19
|
+
require('../components/Popover/Context.js');
|
|
20
|
+
require('react-dropzone');
|
|
21
|
+
require('uuid');
|
|
22
|
+
var types = require('../components/Uploader/types.js');
|
|
23
|
+
require('@floating-ui/react');
|
|
24
|
+
require('currency.js');
|
|
25
|
+
require('../components/Calendar/CalendarCell.js');
|
|
26
|
+
require('@tecsinapse/cortex-core');
|
|
27
|
+
require('react-icons/fa');
|
|
28
|
+
require('react-icons/io');
|
|
29
|
+
require('embla-carousel-react');
|
|
30
|
+
require('embla-carousel-autoplay');
|
|
31
|
+
require('../components/Checkbox.js');
|
|
32
|
+
require('../components/ColorPicker.js');
|
|
33
|
+
require('../components/DatePicker/DateSegment.js');
|
|
34
|
+
require('../components/DatePicker/DatePickerInputBase.js');
|
|
35
|
+
require('../components/GroupButton.js');
|
|
36
|
+
require('../components/Hint.js');
|
|
37
|
+
require('../components/Input/Box.js');
|
|
38
|
+
require('../components/Input/Face.js');
|
|
39
|
+
require('../components/Input/Left.js');
|
|
40
|
+
require('../components/Input/Mask.js');
|
|
41
|
+
require('../components/Input/Right.js');
|
|
42
|
+
require('../components/Input/Root.js');
|
|
43
|
+
require('../components/Input/Search.js');
|
|
44
|
+
require('../components/Menubar/Left.js');
|
|
45
|
+
require('../styles/menubar.js');
|
|
46
|
+
require('../components/Menubar/Right.js');
|
|
47
|
+
require('../components/Menubar/Dropdown.js');
|
|
48
|
+
require('../components/Menubar/MostUsed.js');
|
|
49
|
+
require('../components/Menubar/MostUsedItem.js');
|
|
50
|
+
require('../components/Menubar/Header.js');
|
|
51
|
+
require('../components/Menubar/Item.js');
|
|
52
|
+
require('./CategoriesContext.js');
|
|
53
|
+
require('../components/Menubar/SubItem.js');
|
|
54
|
+
require('../components/Modal.js');
|
|
55
|
+
require('../components/ProgressBar/Progress.js');
|
|
56
|
+
require('../components/RadioButton.js');
|
|
57
|
+
require('../components/Select/GroupedOptions.js');
|
|
58
|
+
require('../components/Select/context.js');
|
|
59
|
+
require('../components/Select/MultiGroupedOptions.js');
|
|
60
|
+
require('../components/Select/MultiOptions.js');
|
|
61
|
+
require('../components/Select/Options.js');
|
|
62
|
+
require('../components/Select/Trigger.js');
|
|
63
|
+
require('../components/Snackbar/BaseSnackbar.js');
|
|
64
|
+
require('../styles/stepNodeVariants.js');
|
|
65
|
+
require('../components/Tag.js');
|
|
66
|
+
require('../components/TextArea/Box.js');
|
|
67
|
+
require('../components/TextArea/Face.js');
|
|
68
|
+
require('../components/TextArea/Left.js');
|
|
69
|
+
require('../components/TextArea/Right.js');
|
|
70
|
+
require('../components/TextArea/Root.js');
|
|
71
|
+
require('../components/TimePicker/TimeFieldInput.js');
|
|
72
|
+
require('../components/Toggle.js');
|
|
73
|
+
require('../components/Tooltip.js');
|
|
74
|
+
require('react-icons/hi2');
|
|
75
|
+
require('react-icons/fa6');
|
|
76
|
+
require('react-dom');
|
|
6
77
|
|
|
7
78
|
const ManagerContext = React.createContext(null);
|
|
8
79
|
const ManagerProvider = ({ children }) => {
|
|
9
80
|
const [props, setProps] = React.useState({});
|
|
10
81
|
const [files, setFiles] = React.useState([]);
|
|
11
82
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
83
|
+
const uploadFiles = async ({
|
|
84
|
+
onAccept,
|
|
85
|
+
newFiles,
|
|
86
|
+
updateFiles
|
|
87
|
+
}) => {
|
|
88
|
+
try {
|
|
89
|
+
setFiles((prevFiles) => [...prevFiles, ...newFiles]);
|
|
90
|
+
if (onAccept) {
|
|
91
|
+
const updatedFiles = await onAccept(newFiles);
|
|
92
|
+
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
93
|
+
}
|
|
94
|
+
} catch (e) {
|
|
95
|
+
const updatedFiles = newFiles.map((f) => ({
|
|
96
|
+
...f,
|
|
97
|
+
status: types.FileStatus.ERROR
|
|
98
|
+
}));
|
|
99
|
+
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
100
|
+
}
|
|
101
|
+
};
|
|
12
102
|
const showManager = (_props) => {
|
|
13
103
|
setProps(_props);
|
|
14
104
|
};
|
|
15
105
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
16
106
|
ManagerContext.Provider,
|
|
17
107
|
{
|
|
18
|
-
value: { showManager, files, setFiles, isOpen, setIsOpen },
|
|
108
|
+
value: { showManager, files, setFiles, isOpen, setIsOpen, uploadFiles },
|
|
19
109
|
children: [
|
|
20
110
|
children,
|
|
21
|
-
/* @__PURE__ */ jsxRuntime.jsx(Manager.Manager, { ...props })
|
|
111
|
+
/* @__PURE__ */ jsxRuntime.jsx(Manager.Manager, { files, open: isOpen, ...props })
|
|
22
112
|
]
|
|
23
113
|
}
|
|
24
114
|
);
|
|
@@ -31,7 +31,8 @@ const useFileUpload = ({
|
|
|
31
31
|
files,
|
|
32
32
|
setFiles,
|
|
33
33
|
isOpen: isManagerOpen,
|
|
34
|
-
setIsOpen: setIsManagerOpen
|
|
34
|
+
setIsOpen: setIsManagerOpen,
|
|
35
|
+
uploadFiles
|
|
35
36
|
} = useManager();
|
|
36
37
|
const [duplicates, setDuplicates] = useState([]);
|
|
37
38
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -81,31 +82,17 @@ const useFileUpload = ({
|
|
|
81
82
|
uid: v4(),
|
|
82
83
|
isFolder
|
|
83
84
|
}));
|
|
84
|
-
|
|
85
|
-
setFiles((prevFiles) => [...prevFiles, ...newFiles]);
|
|
86
|
-
if (onAccept) {
|
|
87
|
-
const updatedFiles = await onAccept(newFiles);
|
|
88
|
-
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
89
|
-
}
|
|
90
|
-
} catch (e) {
|
|
91
|
-
const updatedFiles = newFiles.map((f) => ({
|
|
92
|
-
...f,
|
|
93
|
-
status: FileStatus.ERROR
|
|
94
|
-
}));
|
|
95
|
-
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
96
|
-
}
|
|
85
|
+
uploadFiles({ onAccept, newFiles, updateFiles });
|
|
97
86
|
};
|
|
98
87
|
useEffect(() => {
|
|
99
88
|
if (hasManager) {
|
|
100
89
|
showManager?.({
|
|
101
|
-
files,
|
|
102
90
|
onClose: closeManager,
|
|
103
91
|
onDelete: handleRemoveFile,
|
|
104
|
-
open: isManagerOpen,
|
|
105
92
|
uploadProgressText
|
|
106
93
|
});
|
|
107
94
|
}
|
|
108
|
-
}, [
|
|
95
|
+
}, [handleRemoveFile, closeManager]);
|
|
109
96
|
const addMimeTypes = (key, acc) => {
|
|
110
97
|
AcceptSpecificMap[key].forEach((mimeType) => {
|
|
111
98
|
acc[mimeType] = [];
|
|
@@ -1,22 +1,112 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { createContext, useState, useContext } from 'react';
|
|
3
3
|
import { Manager } from '../components/Uploader/Manager.js';
|
|
4
|
+
import 'clsx';
|
|
5
|
+
import '../components/Accordion/context.js';
|
|
6
|
+
import 'react-icons/lia';
|
|
7
|
+
import '@internationalized/date';
|
|
8
|
+
import '../components/Badge.js';
|
|
9
|
+
import 'react-icons/md';
|
|
10
|
+
import '../components/Card.js';
|
|
11
|
+
import '../components/Button.js';
|
|
12
|
+
import 'react-aria';
|
|
13
|
+
import 'react-stately';
|
|
14
|
+
import './MenubarContext.js';
|
|
15
|
+
import './SnackbarProvider.js';
|
|
16
|
+
import './CalendarProvider.js';
|
|
17
|
+
import '../components/Popover/Context.js';
|
|
18
|
+
import 'react-dropzone';
|
|
19
|
+
import 'uuid';
|
|
20
|
+
import { FileStatus } from '../components/Uploader/types.js';
|
|
21
|
+
import '@floating-ui/react';
|
|
22
|
+
import 'currency.js';
|
|
23
|
+
import '../components/Calendar/CalendarCell.js';
|
|
24
|
+
import '@tecsinapse/cortex-core';
|
|
25
|
+
import 'react-icons/fa';
|
|
26
|
+
import 'react-icons/io';
|
|
27
|
+
import 'embla-carousel-react';
|
|
28
|
+
import 'embla-carousel-autoplay';
|
|
29
|
+
import '../components/Checkbox.js';
|
|
30
|
+
import '../components/ColorPicker.js';
|
|
31
|
+
import '../components/DatePicker/DateSegment.js';
|
|
32
|
+
import '../components/DatePicker/DatePickerInputBase.js';
|
|
33
|
+
import '../components/GroupButton.js';
|
|
34
|
+
import '../components/Hint.js';
|
|
35
|
+
import '../components/Input/Box.js';
|
|
36
|
+
import '../components/Input/Face.js';
|
|
37
|
+
import '../components/Input/Left.js';
|
|
38
|
+
import '../components/Input/Mask.js';
|
|
39
|
+
import '../components/Input/Right.js';
|
|
40
|
+
import '../components/Input/Root.js';
|
|
41
|
+
import '../components/Input/Search.js';
|
|
42
|
+
import '../components/Menubar/Left.js';
|
|
43
|
+
import '../styles/menubar.js';
|
|
44
|
+
import '../components/Menubar/Right.js';
|
|
45
|
+
import '../components/Menubar/Dropdown.js';
|
|
46
|
+
import '../components/Menubar/MostUsed.js';
|
|
47
|
+
import '../components/Menubar/MostUsedItem.js';
|
|
48
|
+
import '../components/Menubar/Header.js';
|
|
49
|
+
import '../components/Menubar/Item.js';
|
|
50
|
+
import './CategoriesContext.js';
|
|
51
|
+
import '../components/Menubar/SubItem.js';
|
|
52
|
+
import '../components/Modal.js';
|
|
53
|
+
import '../components/ProgressBar/Progress.js';
|
|
54
|
+
import '../components/RadioButton.js';
|
|
55
|
+
import '../components/Select/GroupedOptions.js';
|
|
56
|
+
import '../components/Select/context.js';
|
|
57
|
+
import '../components/Select/MultiGroupedOptions.js';
|
|
58
|
+
import '../components/Select/MultiOptions.js';
|
|
59
|
+
import '../components/Select/Options.js';
|
|
60
|
+
import '../components/Select/Trigger.js';
|
|
61
|
+
import '../components/Snackbar/BaseSnackbar.js';
|
|
62
|
+
import '../styles/stepNodeVariants.js';
|
|
63
|
+
import '../components/Tag.js';
|
|
64
|
+
import '../components/TextArea/Box.js';
|
|
65
|
+
import '../components/TextArea/Face.js';
|
|
66
|
+
import '../components/TextArea/Left.js';
|
|
67
|
+
import '../components/TextArea/Right.js';
|
|
68
|
+
import '../components/TextArea/Root.js';
|
|
69
|
+
import '../components/TimePicker/TimeFieldInput.js';
|
|
70
|
+
import '../components/Toggle.js';
|
|
71
|
+
import '../components/Tooltip.js';
|
|
72
|
+
import 'react-icons/hi2';
|
|
73
|
+
import 'react-icons/fa6';
|
|
74
|
+
import 'react-dom';
|
|
4
75
|
|
|
5
76
|
const ManagerContext = createContext(null);
|
|
6
77
|
const ManagerProvider = ({ children }) => {
|
|
7
78
|
const [props, setProps] = useState({});
|
|
8
79
|
const [files, setFiles] = useState([]);
|
|
9
80
|
const [isOpen, setIsOpen] = useState(false);
|
|
81
|
+
const uploadFiles = async ({
|
|
82
|
+
onAccept,
|
|
83
|
+
newFiles,
|
|
84
|
+
updateFiles
|
|
85
|
+
}) => {
|
|
86
|
+
try {
|
|
87
|
+
setFiles((prevFiles) => [...prevFiles, ...newFiles]);
|
|
88
|
+
if (onAccept) {
|
|
89
|
+
const updatedFiles = await onAccept(newFiles);
|
|
90
|
+
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
91
|
+
}
|
|
92
|
+
} catch (e) {
|
|
93
|
+
const updatedFiles = newFiles.map((f) => ({
|
|
94
|
+
...f,
|
|
95
|
+
status: FileStatus.ERROR
|
|
96
|
+
}));
|
|
97
|
+
setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
|
|
98
|
+
}
|
|
99
|
+
};
|
|
10
100
|
const showManager = (_props) => {
|
|
11
101
|
setProps(_props);
|
|
12
102
|
};
|
|
13
103
|
return /* @__PURE__ */ jsxs(
|
|
14
104
|
ManagerContext.Provider,
|
|
15
105
|
{
|
|
16
|
-
value: { showManager, files, setFiles, isOpen, setIsOpen },
|
|
106
|
+
value: { showManager, files, setFiles, isOpen, setIsOpen, uploadFiles },
|
|
17
107
|
children: [
|
|
18
108
|
children,
|
|
19
|
-
/* @__PURE__ */ jsx(Manager, { ...props })
|
|
109
|
+
/* @__PURE__ */ jsx(Manager, { files, open: isOpen, ...props })
|
|
20
110
|
]
|
|
21
111
|
}
|
|
22
112
|
);
|
|
@@ -8,7 +8,7 @@ interface UseFileUploadOptions<T> {
|
|
|
8
8
|
VIDEO?: (typeof AcceptSpecificMap.VIDEO)[number][];
|
|
9
9
|
TEXT?: (typeof AcceptSpecificMap.TEXT)[number][];
|
|
10
10
|
};
|
|
11
|
-
onAccept?: (files: FileUpload<T>[]) => Promise<FileUpload<T>[]>;
|
|
11
|
+
onAccept?: (files: FileUpload<T | unknown>[]) => Promise<FileUpload<T>[]>;
|
|
12
12
|
onFileRejected?: (fileRejections: FileRejection[], event: DropEvent) => void;
|
|
13
13
|
maxSize?: number;
|
|
14
14
|
allowMultiple?: boolean;
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { FileUpload, ManagerProps } from '../components';
|
|
3
|
+
interface UploadFilesProps<T> {
|
|
4
|
+
onAccept?: (files: FileUpload<T>[]) => Promise<FileUpload<T>[]>;
|
|
5
|
+
newFiles: FileUpload<T>[];
|
|
6
|
+
updateFiles: any;
|
|
7
|
+
}
|
|
3
8
|
interface ManagerContextProps<T> {
|
|
4
9
|
showManager: (props: ManagerProps<unknown>) => void;
|
|
5
10
|
files: FileUpload<T>[];
|
|
6
11
|
setFiles: React.Dispatch<React.SetStateAction<FileUpload<unknown>[]>>;
|
|
7
12
|
isOpen: boolean;
|
|
8
13
|
setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
|
+
uploadFiles: (props: UploadFilesProps<T>) => void;
|
|
9
15
|
}
|
|
10
16
|
export declare const ManagerProvider: ({ children }: {
|
|
11
17
|
children: ReactNode;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tecsinapse/cortex-react",
|
|
3
|
-
"version": "1.15.0-beta.
|
|
3
|
+
"version": "1.15.0-beta.12",
|
|
4
4
|
"description": "React components based in @tecsinapse/cortex-core",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/esm/index.js",
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
"react-icons": ">=5.2.0",
|
|
49
49
|
"tailwind": ">=3.3.0"
|
|
50
50
|
},
|
|
51
|
-
"gitHead": "
|
|
51
|
+
"gitHead": "88be974ff93d865dacc62c3b0700a7f5bebb630b"
|
|
52
52
|
}
|