@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.
@@ -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: FileChangePayload;
18
+ payload: FileUploaderFile[];
23
19
  } | {
24
20
  type: 'onRemoveFile';
25
- payload: FileChangePayload;
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
- rootErrors: action.payload.rootErrors,
23
- files: action.payload.files
22
+ files: action.payload
24
23
  });
25
24
  case 'onRemoveFile':
26
25
  return Object.assign(Object.assign({}, state), {
27
- rootErrors: action.payload.rootErrors,
28
- files: action.payload.files
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 _props$initialFiles = props.initialFiles,
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 = initialFiles.map(function (f) {
29
- return {
30
- file: f,
31
- errors: []
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, rootErrors;
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 = 9;
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 9:
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 () {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norges-domstoler/dds-components",
3
- "version": "10.3.0",
3
+ "version": "10.3.2",
4
4
  "description": "React components used in Elsa - domstolenes designsystem",
5
5
  "author": "Elsa team",
6
6
  "license": "MIT",