@navikt/ds-react 5.17.1 → 5.17.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/cjs/date/datepicker/DatePicker.js +0 -2
- package/cjs/date/datepicker/DatePickerStandalone.js +0 -2
- package/cjs/date/datepicker/parts/Row.js +2 -1
- package/cjs/util/TextareaAutoSize.js +14 -24
- package/esm/date/datepicker/DatePicker.js +0 -2
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/datepicker/DatePickerStandalone.js +0 -2
- package/esm/date/datepicker/DatePickerStandalone.js.map +1 -1
- package/esm/date/datepicker/parts/Row.js +3 -2
- package/esm/date/datepicker/parts/Row.js.map +1 -1
- package/esm/util/TextareaAutoSize.js +14 -24
- package/esm/util/TextareaAutoSize.js.map +1 -1
- package/package.json +3 -3
- package/src/date/datepicker/DatePicker.tsx +0 -2
- package/src/date/datepicker/DatePickerStandalone.tsx +0 -2
- package/src/date/datepicker/datepicker.stories.tsx +4 -4
- package/src/date/datepicker/parts/Row.tsx +3 -2
- package/src/form/stories/textarea.stories.tsx +18 -0
- package/src/util/TextareaAutoSize.tsx +16 -31
|
@@ -51,7 +51,6 @@ const DateWrapper_1 = require("../parts/DateWrapper");
|
|
|
51
51
|
const utils_1 = require("../utils");
|
|
52
52
|
const DatePickerStandalone_1 = __importDefault(require("./DatePickerStandalone"));
|
|
53
53
|
const Caption_1 = __importDefault(require("./parts/Caption"));
|
|
54
|
-
const DayButton_1 = __importDefault(require("./parts/DayButton"));
|
|
55
54
|
const DropdownCaption_1 = __importDefault(require("./parts/DropdownCaption"));
|
|
56
55
|
const HeadRow_1 = require("./parts/HeadRow");
|
|
57
56
|
const Row_1 = __importDefault(require("./parts/Row"));
|
|
@@ -108,7 +107,6 @@ exports.DatePicker = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
108
107
|
HeadRow: HeadRow_1.HeadRow,
|
|
109
108
|
WeekNumber: WeekNumber_1.default,
|
|
110
109
|
Row: Row_1.default,
|
|
111
|
-
Day: DayButton_1.default,
|
|
112
110
|
}, className: (0, clsx_1.default)("navds-date", className), classNames: {
|
|
113
111
|
vhidden: "navds-sr-only",
|
|
114
112
|
}, disabled: (day) => {
|
|
@@ -45,7 +45,6 @@ const react_day_picker_1 = require("react-day-picker");
|
|
|
45
45
|
const util_1 = require("../../util");
|
|
46
46
|
const utils_1 = require("../utils");
|
|
47
47
|
const Caption_1 = __importDefault(require("./parts/Caption"));
|
|
48
|
-
const DayButton_1 = __importDefault(require("./parts/DayButton"));
|
|
49
48
|
const DropdownCaption_1 = __importDefault(require("./parts/DropdownCaption"));
|
|
50
49
|
const HeadRow_1 = require("./parts/HeadRow");
|
|
51
50
|
const Row_1 = __importDefault(require("./parts/Row"));
|
|
@@ -70,7 +69,6 @@ exports.DatePickerStandalone = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
70
69
|
HeadRow: HeadRow_1.HeadRow,
|
|
71
70
|
WeekNumber: WeekNumber_1.default,
|
|
72
71
|
Row: Row_1.default,
|
|
73
|
-
Day: DayButton_1.default,
|
|
74
72
|
}, className: "navds-date", classNames: { vhidden: "navds-sr-only" }, disabled: (day) => {
|
|
75
73
|
return ((disableWeekends && (0, isWeekend_1.default)(day)) || (0, react_day_picker_1.isMatch)(day, disabled));
|
|
76
74
|
}, weekStartsOn: 1, initialFocus: false, labels: utils_1.labels, modifiers: {
|
|
@@ -7,6 +7,7 @@ const date_fns_1 = require("date-fns");
|
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
8
|
const react_day_picker_1 = require("react-day-picker");
|
|
9
9
|
const responsive_1 = require("../../../layout/responsive");
|
|
10
|
+
const DayButton_1 = __importDefault(require("./DayButton"));
|
|
10
11
|
const WeekNumber_1 = __importDefault(require("./WeekNumber"));
|
|
11
12
|
/**
|
|
12
13
|
* https://github.com/gpbl/react-day-picker/tree/main/src/components/Row
|
|
@@ -18,6 +19,6 @@ function Row(props) {
|
|
|
18
19
|
react_1.default.createElement("td", { className: classNames.cell, style: styles.cell },
|
|
19
20
|
react_1.default.createElement(WeekNumber_1.default, { number: props.weekNumber, dates: props.dates })))),
|
|
20
21
|
props.dates.map((date) => (react_1.default.createElement("td", { className: classNames.cell, style: styles.cell, key: (0, date_fns_1.getUnixTime)(date) },
|
|
21
|
-
react_1.default.createElement(
|
|
22
|
+
react_1.default.createElement(DayButton_1.default, { displayMonth: props.displayMonth, date: date }))))));
|
|
22
23
|
}
|
|
23
24
|
exports.default = Row;
|
|
@@ -43,7 +43,7 @@ const react_dom_1 = __importDefault(require("react-dom"));
|
|
|
43
43
|
const hooks_1 = require("../util/hooks");
|
|
44
44
|
const debounce_1 = __importDefault(require("./debounce"));
|
|
45
45
|
const useMergeRefs_1 = require("./hooks/useMergeRefs");
|
|
46
|
-
const
|
|
46
|
+
const checkState = (prevState, newState, renders) => {
|
|
47
47
|
const { outerHeightStyle, overflow } = newState;
|
|
48
48
|
// Need a large enough difference to update the height.
|
|
49
49
|
// This prevents infinite rendering loop.
|
|
@@ -52,18 +52,10 @@ const updateState = (prevState, newState, renders) => {
|
|
|
52
52
|
Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1) ||
|
|
53
53
|
prevState.overflow !== overflow)) {
|
|
54
54
|
renders.current += 1;
|
|
55
|
-
return
|
|
56
|
-
overflow,
|
|
57
|
-
outerHeightStyle,
|
|
58
|
-
};
|
|
55
|
+
return newState;
|
|
59
56
|
}
|
|
60
|
-
if (process.env.NODE_ENV !== "production") {
|
|
61
|
-
|
|
62
|
-
console.error([
|
|
63
|
-
"Textarea: Too many re-renders. The layout is unstable.",
|
|
64
|
-
"TextareaAutosize limits the number of renders to prevent an infinite loop.",
|
|
65
|
-
].join("\n"));
|
|
66
|
-
}
|
|
57
|
+
if (process.env.NODE_ENV !== "production" && renders.current === 20) {
|
|
58
|
+
console.error("Textarea: Too many re-renders. The layout is unstable. TextareaAutosize limits the number of renders to prevent an infinite loop.");
|
|
67
59
|
}
|
|
68
60
|
return prevState;
|
|
69
61
|
};
|
|
@@ -128,13 +120,13 @@ const TextareaAutosize = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
128
120
|
const overflow = Math.abs(outerHeight - innerHeight) <= 1;
|
|
129
121
|
return { outerHeightStyle, overflow };
|
|
130
122
|
}, [maxRows, minRows, other.placeholder]);
|
|
131
|
-
const syncHeight =
|
|
123
|
+
const syncHeight = () => {
|
|
132
124
|
const newState = getUpdatedState();
|
|
133
125
|
if (isEmpty(newState)) {
|
|
134
126
|
return;
|
|
135
127
|
}
|
|
136
|
-
setState((prevState) =>
|
|
137
|
-
}
|
|
128
|
+
setState((prevState) => checkState(prevState, newState, renders));
|
|
129
|
+
};
|
|
138
130
|
(0, hooks_1.useClientLayoutEffect)(() => {
|
|
139
131
|
const syncHeightWithFlushSync = () => {
|
|
140
132
|
const newState = getUpdatedState();
|
|
@@ -143,14 +135,13 @@ const TextareaAutosize = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
143
135
|
}
|
|
144
136
|
// In React 18, state updates in a ResizeObserver's callback are happening after
|
|
145
137
|
// the paint, this leads to an infinite rendering.
|
|
146
|
-
//
|
|
147
|
-
// Using flushSync ensures that the states is updated before the next pain.
|
|
138
|
+
// Using flushSync ensures that the state is updated before the next paint.
|
|
148
139
|
// Related issue - https://github.com/facebook/react/issues/24331
|
|
149
140
|
react_dom_1.default.flushSync(() => {
|
|
150
|
-
setState((prevState) =>
|
|
141
|
+
setState((prevState) => checkState(prevState, newState, renders));
|
|
151
142
|
});
|
|
152
143
|
};
|
|
153
|
-
const handleResize = () => {
|
|
144
|
+
const handleResize = (0, debounce_1.default)(() => {
|
|
154
145
|
var _a, _b, _c;
|
|
155
146
|
renders.current = 0;
|
|
156
147
|
if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.style.height) || ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.style.width)) {
|
|
@@ -161,19 +152,18 @@ const TextareaAutosize = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
161
152
|
return;
|
|
162
153
|
}
|
|
163
154
|
syncHeightWithFlushSync();
|
|
164
|
-
};
|
|
165
|
-
const debounceHandleResize = (0, debounce_1.default)(handleResize);
|
|
155
|
+
});
|
|
166
156
|
const input = inputRef.current;
|
|
167
157
|
const containerWindow = ownerWindow(input);
|
|
168
|
-
containerWindow.addEventListener("resize",
|
|
158
|
+
containerWindow.addEventListener("resize", handleResize);
|
|
169
159
|
let resizeObserver;
|
|
170
160
|
if (typeof ResizeObserver !== "undefined") {
|
|
171
161
|
resizeObserver = new ResizeObserver(handleResize);
|
|
172
162
|
resizeObserver.observe(input);
|
|
173
163
|
}
|
|
174
164
|
return () => {
|
|
175
|
-
|
|
176
|
-
containerWindow.removeEventListener("resize",
|
|
165
|
+
handleResize.clear();
|
|
166
|
+
containerWindow.removeEventListener("resize", handleResize);
|
|
177
167
|
if (resizeObserver) {
|
|
178
168
|
resizeObserver.disconnect();
|
|
179
169
|
}
|
|
@@ -22,7 +22,6 @@ import { DateWrapper } from "../parts/DateWrapper";
|
|
|
22
22
|
import { getLocaleFromString, labels } from "../utils";
|
|
23
23
|
import DatePickerStandalone from "./DatePickerStandalone";
|
|
24
24
|
import Caption from "./parts/Caption";
|
|
25
|
-
import DayButton from "./parts/DayButton";
|
|
26
25
|
import DropdownCaption from "./parts/DropdownCaption";
|
|
27
26
|
import { HeadRow } from "./parts/HeadRow";
|
|
28
27
|
import Row from "./parts/Row";
|
|
@@ -79,7 +78,6 @@ export const DatePicker = forwardRef((_a, ref) => {
|
|
|
79
78
|
HeadRow,
|
|
80
79
|
WeekNumber,
|
|
81
80
|
Row,
|
|
82
|
-
Day: DayButton,
|
|
83
81
|
}, className: cl("navds-date", className), classNames: {
|
|
84
82
|
vhidden: "navds-sr-only",
|
|
85
83
|
}, disabled: (day) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAa,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,6 @@ import { DayPicker, isMatch } from "react-day-picker";
|
|
|
16
16
|
import { omit } from "../../util";
|
|
17
17
|
import { getLocaleFromString, labels } from "../utils";
|
|
18
18
|
import Caption from "./parts/Caption";
|
|
19
|
-
import DayButton from "./parts/DayButton";
|
|
20
19
|
import DropdownCaption from "./parts/DropdownCaption";
|
|
21
20
|
import { HeadRow } from "./parts/HeadRow";
|
|
22
21
|
import Row from "./parts/Row";
|
|
@@ -41,7 +40,6 @@ export const DatePickerStandalone = forwardRef((_a, ref) => {
|
|
|
41
40
|
HeadRow,
|
|
42
41
|
WeekNumber,
|
|
43
42
|
Row,
|
|
44
|
-
Day: DayButton,
|
|
45
43
|
}, className: "navds-date", classNames: { vhidden: "navds-sr-only" }, disabled: (day) => {
|
|
46
44
|
return ((disableWeekends && isWeekend(day)) || isMatch(day, disabled));
|
|
47
45
|
}, weekStartsOn: 1, initialFocus: false, labels: labels, modifiers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerStandalone.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePickerStandalone.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAa,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,OAAO,MAAM,iBAAiB,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"DatePickerStandalone.js","sourceRoot":"","sources":["../../../src/date/datepicker/DatePickerStandalone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getUnixTime } from "date-fns";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { useDayPicker } from "react-day-picker";
|
|
4
4
|
import { Hide } from "../../../layout/responsive";
|
|
5
|
+
import DayButton from "./DayButton";
|
|
5
6
|
import WeekNumber from "./WeekNumber";
|
|
6
7
|
/**
|
|
7
8
|
* https://github.com/gpbl/react-day-picker/tree/main/src/components/Row
|
|
@@ -13,7 +14,7 @@ function Row(props) {
|
|
|
13
14
|
React.createElement("td", { className: classNames.cell, style: styles.cell },
|
|
14
15
|
React.createElement(WeekNumber, { number: props.weekNumber, dates: props.dates })))),
|
|
15
16
|
props.dates.map((date) => (React.createElement("td", { className: classNames.cell, style: styles.cell, key: getUnixTime(date) },
|
|
16
|
-
React.createElement(
|
|
17
|
+
React.createElement(DayButton, { displayMonth: props.displayMonth, date: date }))))));
|
|
17
18
|
}
|
|
18
19
|
export default Row;
|
|
19
20
|
//# sourceMappingURL=Row.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.js","sourceRoot":"","sources":["../../../../src/date/datepicker/parts/Row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Row.js","sourceRoot":"","sources":["../../../../src/date/datepicker/parts/Row.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,UAAU,MAAM,cAAc,CAAC;AActC;;GAEG;AACH,SAAS,GAAG,CAAC,KAAe;IAC1B,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9D,OAAO,CACL,4BAAI,SAAS,EAAE,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG;QAC7C,cAAc,IAAI,CACjB,oBAAC,IAAI,IAAC,KAAK,EAAC,IAAI,EAAC,OAAO;YACtB,4BAAI,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI;gBAChD,oBAAC,UAAU,IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CACzD,CACA,CACR;QACA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,4BACE,SAAS,EAAE,UAAU,CAAC,IAAI,EAC1B,KAAK,EAAE,MAAM,CAAC,IAAI,EAClB,GAAG,EAAE,WAAW,CAAC,IAAI,CAAC;YAEtB,oBAAC,SAAS,IAAC,YAAY,EAAE,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,GAAI,CACxD,CACN,CAAC,CACC,CACN,CAAC;AACJ,CAAC;AAED,eAAe,GAAG,CAAC"}
|
|
@@ -15,7 +15,7 @@ import ReactDOM from "react-dom";
|
|
|
15
15
|
import { useClientLayoutEffect } from "../util/hooks";
|
|
16
16
|
import debounce from "./debounce";
|
|
17
17
|
import { useMergeRefs } from "./hooks/useMergeRefs";
|
|
18
|
-
const
|
|
18
|
+
const checkState = (prevState, newState, renders) => {
|
|
19
19
|
const { outerHeightStyle, overflow } = newState;
|
|
20
20
|
// Need a large enough difference to update the height.
|
|
21
21
|
// This prevents infinite rendering loop.
|
|
@@ -24,18 +24,10 @@ const updateState = (prevState, newState, renders) => {
|
|
|
24
24
|
Math.abs((prevState.outerHeightStyle || 0) - outerHeightStyle) > 1) ||
|
|
25
25
|
prevState.overflow !== overflow)) {
|
|
26
26
|
renders.current += 1;
|
|
27
|
-
return
|
|
28
|
-
overflow,
|
|
29
|
-
outerHeightStyle,
|
|
30
|
-
};
|
|
27
|
+
return newState;
|
|
31
28
|
}
|
|
32
|
-
if (process.env.NODE_ENV !== "production") {
|
|
33
|
-
|
|
34
|
-
console.error([
|
|
35
|
-
"Textarea: Too many re-renders. The layout is unstable.",
|
|
36
|
-
"TextareaAutosize limits the number of renders to prevent an infinite loop.",
|
|
37
|
-
].join("\n"));
|
|
38
|
-
}
|
|
29
|
+
if (process.env.NODE_ENV !== "production" && renders.current === 20) {
|
|
30
|
+
console.error("Textarea: Too many re-renders. The layout is unstable. TextareaAutosize limits the number of renders to prevent an infinite loop.");
|
|
39
31
|
}
|
|
40
32
|
return prevState;
|
|
41
33
|
};
|
|
@@ -100,13 +92,13 @@ const TextareaAutosize = forwardRef((_a, ref) => {
|
|
|
100
92
|
const overflow = Math.abs(outerHeight - innerHeight) <= 1;
|
|
101
93
|
return { outerHeightStyle, overflow };
|
|
102
94
|
}, [maxRows, minRows, other.placeholder]);
|
|
103
|
-
const syncHeight =
|
|
95
|
+
const syncHeight = () => {
|
|
104
96
|
const newState = getUpdatedState();
|
|
105
97
|
if (isEmpty(newState)) {
|
|
106
98
|
return;
|
|
107
99
|
}
|
|
108
|
-
setState((prevState) =>
|
|
109
|
-
}
|
|
100
|
+
setState((prevState) => checkState(prevState, newState, renders));
|
|
101
|
+
};
|
|
110
102
|
useClientLayoutEffect(() => {
|
|
111
103
|
const syncHeightWithFlushSync = () => {
|
|
112
104
|
const newState = getUpdatedState();
|
|
@@ -115,14 +107,13 @@ const TextareaAutosize = forwardRef((_a, ref) => {
|
|
|
115
107
|
}
|
|
116
108
|
// In React 18, state updates in a ResizeObserver's callback are happening after
|
|
117
109
|
// the paint, this leads to an infinite rendering.
|
|
118
|
-
//
|
|
119
|
-
// Using flushSync ensures that the states is updated before the next pain.
|
|
110
|
+
// Using flushSync ensures that the state is updated before the next paint.
|
|
120
111
|
// Related issue - https://github.com/facebook/react/issues/24331
|
|
121
112
|
ReactDOM.flushSync(() => {
|
|
122
|
-
setState((prevState) =>
|
|
113
|
+
setState((prevState) => checkState(prevState, newState, renders));
|
|
123
114
|
});
|
|
124
115
|
};
|
|
125
|
-
const handleResize = () => {
|
|
116
|
+
const handleResize = debounce(() => {
|
|
126
117
|
var _a, _b, _c;
|
|
127
118
|
renders.current = 0;
|
|
128
119
|
if (((_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.style.height) || ((_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.style.width)) {
|
|
@@ -133,19 +124,18 @@ const TextareaAutosize = forwardRef((_a, ref) => {
|
|
|
133
124
|
return;
|
|
134
125
|
}
|
|
135
126
|
syncHeightWithFlushSync();
|
|
136
|
-
};
|
|
137
|
-
const debounceHandleResize = debounce(handleResize);
|
|
127
|
+
});
|
|
138
128
|
const input = inputRef.current;
|
|
139
129
|
const containerWindow = ownerWindow(input);
|
|
140
|
-
containerWindow.addEventListener("resize",
|
|
130
|
+
containerWindow.addEventListener("resize", handleResize);
|
|
141
131
|
let resizeObserver;
|
|
142
132
|
if (typeof ResizeObserver !== "undefined") {
|
|
143
133
|
resizeObserver = new ResizeObserver(handleResize);
|
|
144
134
|
resizeObserver.observe(input);
|
|
145
135
|
}
|
|
146
136
|
return () => {
|
|
147
|
-
|
|
148
|
-
containerWindow.removeEventListener("resize",
|
|
137
|
+
handleResize.clear();
|
|
138
|
+
containerWindow.removeEventListener("resize", handleResize);
|
|
149
139
|
if (resizeObserver) {
|
|
150
140
|
resizeObserver.disconnect();
|
|
151
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextareaAutoSize.js","sourceRoot":"","sources":["../../src/util/TextareaAutoSize.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,gHAAgH;AAChH,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAOpD,MAAM,
|
|
1
|
+
{"version":3,"file":"TextareaAutoSize.js","sourceRoot":"","sources":["../../src/util/TextareaAutoSize.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "5.17.
|
|
3
|
+
"version": "5.17.2",
|
|
4
4
|
"description": "Aksel react-components for NAV designsystem",
|
|
5
5
|
"author": "Aksel | NAV designsystem team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@floating-ui/react": "0.25.4",
|
|
41
|
-
"@navikt/aksel-icons": "^5.17.
|
|
42
|
-
"@navikt/ds-tokens": "^5.17.
|
|
41
|
+
"@navikt/aksel-icons": "^5.17.2",
|
|
42
|
+
"@navikt/ds-tokens": "^5.17.2",
|
|
43
43
|
"@radix-ui/react-tabs": "1.0.0",
|
|
44
44
|
"@radix-ui/react-toggle-group": "1.0.0",
|
|
45
45
|
"clsx": "^1.2.1",
|
|
@@ -11,7 +11,6 @@ import { DateWrapper } from "../parts/DateWrapper";
|
|
|
11
11
|
import { getLocaleFromString, labels } from "../utils";
|
|
12
12
|
import DatePickerStandalone from "./DatePickerStandalone";
|
|
13
13
|
import Caption from "./parts/Caption";
|
|
14
|
-
import DayButton from "./parts/DayButton";
|
|
15
14
|
import DropdownCaption from "./parts/DropdownCaption";
|
|
16
15
|
import { HeadRow } from "./parts/HeadRow";
|
|
17
16
|
import Row from "./parts/Row";
|
|
@@ -124,7 +123,6 @@ export const DatePicker = forwardRef<HTMLDivElement, DatePickerProps>(
|
|
|
124
123
|
HeadRow,
|
|
125
124
|
WeekNumber,
|
|
126
125
|
Row,
|
|
127
|
-
Day: DayButton,
|
|
128
126
|
}}
|
|
129
127
|
className={cl("navds-date", className)}
|
|
130
128
|
classNames={{
|
|
@@ -5,7 +5,6 @@ import { DateRange, DayPicker, isMatch } from "react-day-picker";
|
|
|
5
5
|
import { omit } from "../../util";
|
|
6
6
|
import { getLocaleFromString, labels } from "../utils";
|
|
7
7
|
import Caption from "./parts/Caption";
|
|
8
|
-
import DayButton from "./parts/DayButton";
|
|
9
8
|
import DropdownCaption from "./parts/DropdownCaption";
|
|
10
9
|
import { HeadRow } from "./parts/HeadRow";
|
|
11
10
|
import Row from "./parts/Row";
|
|
@@ -94,7 +93,6 @@ export const DatePickerStandalone: DatePickerStandaloneType = forwardRef<
|
|
|
94
93
|
HeadRow,
|
|
95
94
|
WeekNumber,
|
|
96
95
|
Row,
|
|
97
|
-
Day: DayButton,
|
|
98
96
|
}}
|
|
99
97
|
className="navds-date"
|
|
100
98
|
classNames={{ vhidden: "navds-sr-only" }}
|
|
@@ -27,13 +27,13 @@ export const Default: StoryObj<DefaultStoryProps> = {
|
|
|
27
27
|
const [open, setOpen] = useState(false);
|
|
28
28
|
|
|
29
29
|
const rangeCtx = useRangeDatepicker({
|
|
30
|
-
fromDate: new Date("Aug 23
|
|
31
|
-
toDate: new Date("Aug 23
|
|
30
|
+
fromDate: new Date("Aug 23 2023"),
|
|
31
|
+
toDate: new Date("Aug 23 2029"),
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
const singleCtx = useDatepicker({
|
|
35
35
|
fromDate: new Date("Aug 23 2020"),
|
|
36
|
-
toDate: new Date("Aug 23
|
|
36
|
+
toDate: new Date("Aug 23 2029"),
|
|
37
37
|
});
|
|
38
38
|
|
|
39
39
|
const newProps = {
|
|
@@ -42,7 +42,7 @@ export const Default: StoryObj<DefaultStoryProps> = {
|
|
|
42
42
|
open,
|
|
43
43
|
onClose: () => setOpen(false),
|
|
44
44
|
fromDate: new Date("Aug 23 2020"),
|
|
45
|
-
toDate: new Date("Aug 23
|
|
45
|
+
toDate: new Date("Aug 23 2029"),
|
|
46
46
|
}
|
|
47
47
|
: {}),
|
|
48
48
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { getUnixTime } from "date-fns";
|
|
2
2
|
import React from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { useDayPicker } from "react-day-picker";
|
|
4
4
|
import { Hide } from "../../../layout/responsive";
|
|
5
|
+
import DayButton from "./DayButton";
|
|
5
6
|
import WeekNumber from "./WeekNumber";
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -37,7 +38,7 @@ function Row(props: RowProps): JSX.Element {
|
|
|
37
38
|
style={styles.cell}
|
|
38
39
|
key={getUnixTime(date)}
|
|
39
40
|
>
|
|
40
|
-
<
|
|
41
|
+
<DayButton displayMonth={props.displayMonth} date={date} />
|
|
41
42
|
</td>
|
|
42
43
|
))}
|
|
43
44
|
</tr>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Meta, StoryFn, StoryObj } from "@storybook/react";
|
|
2
2
|
import React, { useState } from "react";
|
|
3
3
|
import { Button } from "../../button";
|
|
4
|
+
import { Modal } from "../../modal";
|
|
4
5
|
import { Textarea } from "../index";
|
|
5
6
|
|
|
6
7
|
const meta: Meta<typeof Textarea> = {
|
|
@@ -186,3 +187,20 @@ AutoScrollbar.argTypes = {
|
|
|
186
187
|
maxRows: { type: "number" },
|
|
187
188
|
minRows: { type: "number" },
|
|
188
189
|
};
|
|
190
|
+
|
|
191
|
+
export const ModalStrictMode: StoryFn<typeof Textarea> = () => {
|
|
192
|
+
// Story added after fixing an issue where TextareaAutoSize would reach max re-renders
|
|
193
|
+
// and set the height to 2px when used in StrictMode in a Modal that is initially open.
|
|
194
|
+
return (
|
|
195
|
+
<React.StrictMode>
|
|
196
|
+
<Modal open>
|
|
197
|
+
<Modal.Body>
|
|
198
|
+
<Textarea label="Har du noen tilbakemeldinger?" />
|
|
199
|
+
</Modal.Body>
|
|
200
|
+
</Modal>
|
|
201
|
+
</React.StrictMode>
|
|
202
|
+
);
|
|
203
|
+
};
|
|
204
|
+
ModalStrictMode.parameters = {
|
|
205
|
+
chromatic: { disable: true }, // Not reproducable in Chromatic
|
|
206
|
+
};
|
|
@@ -10,7 +10,7 @@ type State = {
|
|
|
10
10
|
overflow?: boolean | undefined;
|
|
11
11
|
};
|
|
12
12
|
|
|
13
|
-
const
|
|
13
|
+
const checkState = (
|
|
14
14
|
prevState: State,
|
|
15
15
|
newState: State,
|
|
16
16
|
renders: React.MutableRefObject<number>,
|
|
@@ -25,20 +25,12 @@ const updateState = (
|
|
|
25
25
|
prevState.overflow !== overflow)
|
|
26
26
|
) {
|
|
27
27
|
renders.current += 1;
|
|
28
|
-
return
|
|
29
|
-
overflow,
|
|
30
|
-
outerHeightStyle,
|
|
31
|
-
};
|
|
28
|
+
return newState;
|
|
32
29
|
}
|
|
33
|
-
if (process.env.NODE_ENV !== "production") {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"Textarea: Too many re-renders. The layout is unstable.",
|
|
38
|
-
"TextareaAutosize limits the number of renders to prevent an infinite loop.",
|
|
39
|
-
].join("\n"),
|
|
40
|
-
);
|
|
41
|
-
}
|
|
30
|
+
if (process.env.NODE_ENV !== "production" && renders.current === 20) {
|
|
31
|
+
console.error(
|
|
32
|
+
"Textarea: Too many re-renders. The layout is unstable. TextareaAutosize limits the number of renders to prevent an infinite loop.",
|
|
33
|
+
);
|
|
42
34
|
}
|
|
43
35
|
return prevState;
|
|
44
36
|
};
|
|
@@ -92,9 +84,7 @@ const TextareaAutosize = forwardRef<HTMLTextAreaElement, TextareaAutosizeProps>(
|
|
|
92
84
|
) => {
|
|
93
85
|
const { current: isControlled } = useRef(value != null);
|
|
94
86
|
const inputRef = useRef<HTMLTextAreaElement>(null);
|
|
95
|
-
|
|
96
87
|
const handleRef = useMergeRefs(inputRef, ref);
|
|
97
|
-
|
|
98
88
|
const shadowRef = useRef<HTMLTextAreaElement>(null);
|
|
99
89
|
const renders = useRef(0);
|
|
100
90
|
const [state, setState] = useState<State>({ outerHeightStyle: 0 });
|
|
@@ -153,35 +143,31 @@ const TextareaAutosize = forwardRef<HTMLTextAreaElement, TextareaAutosizeProps>(
|
|
|
153
143
|
return { outerHeightStyle, overflow };
|
|
154
144
|
}, [maxRows, minRows, other.placeholder]);
|
|
155
145
|
|
|
156
|
-
const syncHeight =
|
|
146
|
+
const syncHeight = () => {
|
|
157
147
|
const newState = getUpdatedState();
|
|
158
|
-
|
|
159
148
|
if (isEmpty(newState)) {
|
|
160
149
|
return;
|
|
161
150
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}, [getUpdatedState]);
|
|
151
|
+
setState((prevState) => checkState(prevState, newState, renders));
|
|
152
|
+
};
|
|
165
153
|
|
|
166
154
|
useClientLayoutEffect(() => {
|
|
167
155
|
const syncHeightWithFlushSync = () => {
|
|
168
156
|
const newState = getUpdatedState();
|
|
169
|
-
|
|
170
157
|
if (isEmpty(newState)) {
|
|
171
158
|
return;
|
|
172
159
|
}
|
|
173
160
|
|
|
174
161
|
// In React 18, state updates in a ResizeObserver's callback are happening after
|
|
175
162
|
// the paint, this leads to an infinite rendering.
|
|
176
|
-
//
|
|
177
|
-
// Using flushSync ensures that the states is updated before the next pain.
|
|
163
|
+
// Using flushSync ensures that the state is updated before the next paint.
|
|
178
164
|
// Related issue - https://github.com/facebook/react/issues/24331
|
|
179
165
|
ReactDOM.flushSync(() => {
|
|
180
|
-
setState((prevState) =>
|
|
166
|
+
setState((prevState) => checkState(prevState, newState, renders));
|
|
181
167
|
});
|
|
182
168
|
};
|
|
183
169
|
|
|
184
|
-
const handleResize = () => {
|
|
170
|
+
const handleResize = debounce(() => {
|
|
185
171
|
renders.current = 0;
|
|
186
172
|
|
|
187
173
|
if (inputRef.current?.style.height || inputRef.current?.style.width) {
|
|
@@ -193,13 +179,12 @@ const TextareaAutosize = forwardRef<HTMLTextAreaElement, TextareaAutosizeProps>(
|
|
|
193
179
|
}
|
|
194
180
|
|
|
195
181
|
syncHeightWithFlushSync();
|
|
196
|
-
};
|
|
182
|
+
});
|
|
197
183
|
|
|
198
|
-
const debounceHandleResize = debounce(handleResize);
|
|
199
184
|
const input = inputRef.current!;
|
|
200
185
|
const containerWindow = ownerWindow(input);
|
|
201
186
|
|
|
202
|
-
containerWindow.addEventListener("resize",
|
|
187
|
+
containerWindow.addEventListener("resize", handleResize);
|
|
203
188
|
|
|
204
189
|
let resizeObserver: ResizeObserver;
|
|
205
190
|
if (typeof ResizeObserver !== "undefined") {
|
|
@@ -208,8 +193,8 @@ const TextareaAutosize = forwardRef<HTMLTextAreaElement, TextareaAutosizeProps>(
|
|
|
208
193
|
}
|
|
209
194
|
|
|
210
195
|
return () => {
|
|
211
|
-
|
|
212
|
-
containerWindow.removeEventListener("resize",
|
|
196
|
+
handleResize.clear();
|
|
197
|
+
containerWindow.removeEventListener("resize", handleResize);
|
|
213
198
|
if (resizeObserver) {
|
|
214
199
|
resizeObserver.disconnect();
|
|
215
200
|
}
|