@tecsinapse/cortex-react 1.15.0-beta.10 → 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.
@@ -28,10 +28,16 @@ const useFileUpload = ({
28
28
  isFolder = false,
29
29
  uploadProgressText
30
30
  }) => {
31
- const [files, setFiles] = React.useState([]);
31
+ const {
32
+ showManager,
33
+ files,
34
+ setFiles,
35
+ isOpen: isManagerOpen,
36
+ setIsOpen: setIsManagerOpen,
37
+ uploadFiles
38
+ } = ManagerContext.useManager();
32
39
  const [duplicates, setDuplicates] = React.useState([]);
33
40
  const [isOpen, setIsOpen] = React.useState(false);
34
- const [isManagerOpen, setIsManagerOpen] = React.useState(false);
35
41
  const onOpen = React.useCallback(() => setIsOpen(true), []);
36
42
  const onClose = React.useCallback(() => setIsOpen(false), []);
37
43
  const handleRemoveFile = React.useCallback((index) => {
@@ -53,7 +59,6 @@ const useFileUpload = ({
53
59
  },
54
60
  []
55
61
  );
56
- const { showManager } = ManagerContext.useManager();
57
62
  const onDrop = async (acceptedFiles) => {
58
63
  if (hasManager) {
59
64
  openManager();
@@ -79,31 +84,17 @@ const useFileUpload = ({
79
84
  uid: uuid.v4(),
80
85
  isFolder
81
86
  }));
82
- try {
83
- setFiles((prevFiles) => [...prevFiles, ...newFiles]);
84
- if (onAccept) {
85
- const updatedFiles = await onAccept(newFiles);
86
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
87
- }
88
- } catch (e) {
89
- const updatedFiles = newFiles.map((f) => ({
90
- ...f,
91
- status: types.FileStatus.ERROR
92
- }));
93
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
94
- }
87
+ uploadFiles({ onAccept, newFiles, updateFiles });
95
88
  };
96
89
  React.useEffect(() => {
97
90
  if (hasManager) {
98
91
  showManager?.({
99
- files,
100
92
  onClose: closeManager,
101
93
  onDelete: handleRemoveFile,
102
- open: isManagerOpen,
103
94
  uploadProgressText
104
95
  });
105
96
  }
106
- }, [isManagerOpen, files, handleRemoveFile, closeManager]);
97
+ }, [handleRemoveFile, closeManager]);
107
98
  const addMimeTypes = (key, acc) => {
108
99
  types.AcceptSpecificMap[key].forEach((mimeType) => {
109
100
  acc[mimeType] = [];
@@ -3,17 +3,115 @@
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({});
81
+ const [files, setFiles] = React.useState([]);
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
+ };
10
102
  const showManager = (_props) => {
11
103
  setProps(_props);
12
104
  };
13
- return /* @__PURE__ */ jsxRuntime.jsxs(ManagerContext.Provider, { value: { showManager }, children: [
14
- children,
15
- /* @__PURE__ */ jsxRuntime.jsx(Manager.Manager, { ...props })
16
- ] });
105
+ return /* @__PURE__ */ jsxRuntime.jsxs(
106
+ ManagerContext.Provider,
107
+ {
108
+ value: { showManager, files, setFiles, isOpen, setIsOpen, uploadFiles },
109
+ children: [
110
+ children,
111
+ /* @__PURE__ */ jsxRuntime.jsx(Manager.Manager, { files, open: isOpen, ...props })
112
+ ]
113
+ }
114
+ );
17
115
  };
18
116
  const useManager = () => {
19
117
  const context = React.useContext(ManagerContext);
@@ -26,10 +26,16 @@ const useFileUpload = ({
26
26
  isFolder = false,
27
27
  uploadProgressText
28
28
  }) => {
29
- const [files, setFiles] = useState([]);
29
+ const {
30
+ showManager,
31
+ files,
32
+ setFiles,
33
+ isOpen: isManagerOpen,
34
+ setIsOpen: setIsManagerOpen,
35
+ uploadFiles
36
+ } = useManager();
30
37
  const [duplicates, setDuplicates] = useState([]);
31
38
  const [isOpen, setIsOpen] = useState(false);
32
- const [isManagerOpen, setIsManagerOpen] = useState(false);
33
39
  const onOpen = useCallback(() => setIsOpen(true), []);
34
40
  const onClose = useCallback(() => setIsOpen(false), []);
35
41
  const handleRemoveFile = useCallback((index) => {
@@ -51,7 +57,6 @@ const useFileUpload = ({
51
57
  },
52
58
  []
53
59
  );
54
- const { showManager } = useManager();
55
60
  const onDrop = async (acceptedFiles) => {
56
61
  if (hasManager) {
57
62
  openManager();
@@ -77,31 +82,17 @@ const useFileUpload = ({
77
82
  uid: v4(),
78
83
  isFolder
79
84
  }));
80
- try {
81
- setFiles((prevFiles) => [...prevFiles, ...newFiles]);
82
- if (onAccept) {
83
- const updatedFiles = await onAccept(newFiles);
84
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
85
- }
86
- } catch (e) {
87
- const updatedFiles = newFiles.map((f) => ({
88
- ...f,
89
- status: FileStatus.ERROR
90
- }));
91
- setFiles((prevFiles) => updateFiles(prevFiles, updatedFiles));
92
- }
85
+ uploadFiles({ onAccept, newFiles, updateFiles });
93
86
  };
94
87
  useEffect(() => {
95
88
  if (hasManager) {
96
89
  showManager?.({
97
- files,
98
90
  onClose: closeManager,
99
91
  onDelete: handleRemoveFile,
100
- open: isManagerOpen,
101
92
  uploadProgressText
102
93
  });
103
94
  }
104
- }, [isManagerOpen, files, handleRemoveFile, closeManager]);
95
+ }, [handleRemoveFile, closeManager]);
105
96
  const addMimeTypes = (key, acc) => {
106
97
  AcceptSpecificMap[key].forEach((mimeType) => {
107
98
  acc[mimeType] = [];
@@ -1,17 +1,115 @@
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({});
79
+ const [files, setFiles] = useState([]);
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
+ };
8
100
  const showManager = (_props) => {
9
101
  setProps(_props);
10
102
  };
11
- return /* @__PURE__ */ jsxs(ManagerContext.Provider, { value: { showManager }, children: [
12
- children,
13
- /* @__PURE__ */ jsx(Manager, { ...props })
14
- ] });
103
+ return /* @__PURE__ */ jsxs(
104
+ ManagerContext.Provider,
105
+ {
106
+ value: { showManager, files, setFiles, isOpen, setIsOpen, uploadFiles },
107
+ children: [
108
+ children,
109
+ /* @__PURE__ */ jsx(Manager, { files, open: isOpen, ...props })
110
+ ]
111
+ }
112
+ );
15
113
  };
16
114
  const useManager = () => {
17
115
  const context = useContext(ManagerContext);
@@ -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;
@@ -27,7 +27,7 @@ export declare const useFileUpload: <T>({ accept, onAccept, onFileRejected, maxS
27
27
  openManager: () => void;
28
28
  closeManager: () => void;
29
29
  isManagerOpen: boolean;
30
- files: FileUpload<T>[];
30
+ files: FileUpload<unknown>[];
31
31
  duplicates: File[];
32
32
  onClearFiles: () => void;
33
33
  };
@@ -1,10 +1,20 @@
1
1
  import { ReactNode } from 'react';
2
- import { ManagerProps } from '../components';
3
- interface ManagerContextProps {
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
+ }
8
+ interface ManagerContextProps<T> {
4
9
  showManager: (props: ManagerProps<unknown>) => void;
10
+ files: FileUpload<T>[];
11
+ setFiles: React.Dispatch<React.SetStateAction<FileUpload<unknown>[]>>;
12
+ isOpen: boolean;
13
+ setIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
14
+ uploadFiles: (props: UploadFilesProps<T>) => void;
5
15
  }
6
16
  export declare const ManagerProvider: ({ children }: {
7
17
  children: ReactNode;
8
18
  }) => import("react/jsx-runtime").JSX.Element;
9
- export declare const useManager: () => ManagerContextProps;
19
+ export declare const useManager: () => ManagerContextProps<unknown>;
10
20
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tecsinapse/cortex-react",
3
- "version": "1.15.0-beta.10",
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": "24b04598996ccf898eadde9e374f8da3045117e1"
51
+ "gitHead": "88be974ff93d865dacc62c3b0700a7f5bebb630b"
52
52
  }