@norges-domstoler/dds-components 10.3.0 → 10.3.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/dist/cjs/components/FileUploader/fileUploaderReducer.d.ts +5 -7
- package/dist/cjs/index.js +213 -205
- package/dist/components/FileUploader/fileUploaderReducer.d.ts +5 -7
- package/dist/components/FileUploader/fileUploaderReducer.js +6 -4
- package/dist/components/FileUploader/useFileUploader.js +21 -22
- package/package.json +1 -1
|
@@ -4,10 +4,6 @@ export type FileUploaderFile = {
|
|
|
4
4
|
file: FileWithPath;
|
|
5
5
|
errors: string[];
|
|
6
6
|
};
|
|
7
|
-
type FileChangePayload = {
|
|
8
|
-
rootErrors: RootErrorList;
|
|
9
|
-
files: FileUploaderFile[];
|
|
10
|
-
};
|
|
11
7
|
export type RootErrorList = string[];
|
|
12
8
|
export type FileUploaderAction = {
|
|
13
9
|
type: 'focus';
|
|
@@ -19,10 +15,13 @@ export type FileUploaderAction = {
|
|
|
19
15
|
type: 'dragLeave';
|
|
20
16
|
} | {
|
|
21
17
|
type: 'onSetFiles';
|
|
22
|
-
payload:
|
|
18
|
+
payload: FileUploaderFile[];
|
|
23
19
|
} | {
|
|
24
20
|
type: 'onRemoveFile';
|
|
25
|
-
payload:
|
|
21
|
+
payload: FileUploaderFile[];
|
|
22
|
+
} | {
|
|
23
|
+
type: 'setRootErrors';
|
|
24
|
+
payload: RootErrorList;
|
|
26
25
|
};
|
|
27
26
|
export type FileUploaderState = {
|
|
28
27
|
files: FileUploaderFile[];
|
|
@@ -32,4 +31,3 @@ export type FileUploaderState = {
|
|
|
32
31
|
rootErrors: string[];
|
|
33
32
|
};
|
|
34
33
|
export declare const fileUploaderReducer: Reducer<FileUploaderState, FileUploaderAction>;
|
|
35
|
-
export {};
|
|
@@ -19,13 +19,15 @@ var fileUploaderReducer = function fileUploaderReducer(state, action) {
|
|
|
19
19
|
case 'onSetFiles':
|
|
20
20
|
return Object.assign(Object.assign({}, state), {
|
|
21
21
|
isDragActive: false,
|
|
22
|
-
|
|
23
|
-
files: action.payload.files
|
|
22
|
+
files: action.payload
|
|
24
23
|
});
|
|
25
24
|
case 'onRemoveFile':
|
|
26
25
|
return Object.assign(Object.assign({}, state), {
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
files: action.payload
|
|
27
|
+
});
|
|
28
|
+
case 'setRootErrors':
|
|
29
|
+
return Object.assign(Object.assign({}, state), {
|
|
30
|
+
rootErrors: action.payload
|
|
29
31
|
});
|
|
30
32
|
default:
|
|
31
33
|
return state;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { slicedToArray as _slicedToArray, regeneratorRuntime as _regeneratorRuntime, toConsumableArray as _toConsumableArray } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import { __awaiter } from 'tslib';
|
|
3
|
-
import { useRef, useReducer, useCallback } from 'react';
|
|
3
|
+
import { useRef, useMemo, useReducer, useEffect, useCallback } from 'react';
|
|
4
4
|
import { fileUploaderReducer } from './fileUploaderReducer.js';
|
|
5
5
|
import { fromEvent } from 'file-selector';
|
|
6
6
|
import { preventDefaults, isEventWithFiles, isFileAccepted, getInvalidFileTypeErrorMessage, getTooManyFilesErrorMessage } from './utils.js';
|
|
@@ -16,8 +16,7 @@ var calcRootErrors = function calcRootErrors(files, maxFiles, errorMessage) {
|
|
|
16
16
|
return errors;
|
|
17
17
|
};
|
|
18
18
|
var useFileUploader = function useFileUploader(props) {
|
|
19
|
-
var
|
|
20
|
-
initialFiles = _props$initialFiles === void 0 ? [] : _props$initialFiles,
|
|
19
|
+
var initialFiles = props.initialFiles,
|
|
21
20
|
accept = props.accept,
|
|
22
21
|
maxFiles = props.maxFiles,
|
|
23
22
|
disabled = props.disabled,
|
|
@@ -25,12 +24,14 @@ var useFileUploader = function useFileUploader(props) {
|
|
|
25
24
|
var rootRef = useRef(null);
|
|
26
25
|
var inputRef = useRef(null);
|
|
27
26
|
var buttonRef = useRef(null);
|
|
28
|
-
var initialFileUploaderFiles =
|
|
29
|
-
return {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
27
|
+
var initialFileUploaderFiles = useMemo(function () {
|
|
28
|
+
return (initialFiles !== null && initialFiles !== void 0 ? initialFiles : []).map(function (f) {
|
|
29
|
+
return {
|
|
30
|
+
file: f,
|
|
31
|
+
errors: []
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}, [initialFiles]);
|
|
34
35
|
var _useReducer = useReducer(fileUploaderReducer, {
|
|
35
36
|
files: initialFileUploaderFiles,
|
|
36
37
|
isFocused: false,
|
|
@@ -42,6 +43,12 @@ var useFileUploader = function useFileUploader(props) {
|
|
|
42
43
|
state = _useReducer2[0],
|
|
43
44
|
dispatch = _useReducer2[1];
|
|
44
45
|
var stateFiles = state.files;
|
|
46
|
+
useEffect(function () {
|
|
47
|
+
dispatch({
|
|
48
|
+
type: 'setRootErrors',
|
|
49
|
+
payload: calcRootErrors(stateFiles, maxFiles, errorMessage)
|
|
50
|
+
});
|
|
51
|
+
}, [dispatch, stateFiles, maxFiles, errorMessage]);
|
|
45
52
|
var onRootFocus = useCallback(function () {
|
|
46
53
|
return dispatch({
|
|
47
54
|
type: 'focus'
|
|
@@ -104,14 +111,14 @@ var useFileUploader = function useFileUploader(props) {
|
|
|
104
111
|
}, [dispatch]);
|
|
105
112
|
var setFiles = useCallback(function (evt) {
|
|
106
113
|
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
107
|
-
var existingFileNames, filesFromEvent, newFiles
|
|
114
|
+
var existingFileNames, filesFromEvent, newFiles;
|
|
108
115
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
109
116
|
while (1) {
|
|
110
117
|
switch (_context2.prev = _context2.next) {
|
|
111
118
|
case 0:
|
|
112
119
|
evt.preventDefault();
|
|
113
120
|
if (!isEventWithFiles(evt)) {
|
|
114
|
-
_context2.next =
|
|
121
|
+
_context2.next = 8;
|
|
115
122
|
break;
|
|
116
123
|
}
|
|
117
124
|
existingFileNames = stateFiles.map(function (f) {
|
|
@@ -130,15 +137,11 @@ var useFileUploader = function useFileUploader(props) {
|
|
|
130
137
|
errors: accepted ? [] : [getInvalidFileTypeErrorMessage()]
|
|
131
138
|
};
|
|
132
139
|
}).concat(stateFiles);
|
|
133
|
-
rootErrors = calcRootErrors(newFiles, maxFiles, errorMessage);
|
|
134
140
|
dispatch({
|
|
135
141
|
type: 'onSetFiles',
|
|
136
|
-
payload:
|
|
137
|
-
rootErrors: rootErrors,
|
|
138
|
-
files: newFiles
|
|
139
|
-
}
|
|
142
|
+
payload: newFiles
|
|
140
143
|
});
|
|
141
|
-
case
|
|
144
|
+
case 8:
|
|
142
145
|
case "end":
|
|
143
146
|
return _context2.stop();
|
|
144
147
|
}
|
|
@@ -155,13 +158,9 @@ var useFileUploader = function useFileUploader(props) {
|
|
|
155
158
|
var removeFile = useCallback(function (file) {
|
|
156
159
|
var newFiles = _toConsumableArray(stateFiles);
|
|
157
160
|
newFiles.splice(stateFiles.indexOf(file), 1);
|
|
158
|
-
var rootErrors = calcRootErrors(newFiles, maxFiles, errorMessage);
|
|
159
161
|
dispatch({
|
|
160
162
|
type: 'onRemoveFile',
|
|
161
|
-
payload:
|
|
162
|
-
rootErrors: rootErrors,
|
|
163
|
-
files: newFiles
|
|
164
|
-
}
|
|
163
|
+
payload: newFiles
|
|
165
164
|
});
|
|
166
165
|
}, [stateFiles, maxFiles, errorMessage]);
|
|
167
166
|
var getRootProps = useCallback(function () {
|