@mtes-mct/monitor-ui 2.7.1 → 2.8.0
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/CHANGELOG.md +14 -0
- package/index.js +35 -16
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/src/fields/DatePicker/index.d.ts +20 -5
- package/src/fields/DateRangePicker/index.d.ts +21 -6
- package/src/formiks/FormikDatePicker.d.ts +8 -4
- package/src/formiks/FormikDateRangePicker.d.ts +8 -4
- package/src/index.d.ts +5 -5
- package/src/types.d.ts +1 -0
- package/src/utils/getLocalizedDayjs.d.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [2.7.2](https://github.com/MTES-MCT/monitor-ui/compare/v2.7.1...v2.7.2) (2023-01-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **elements:** set Button icon size in px instead of rem ([363ffab](https://github.com/MTES-MCT/monitor-ui/commit/363ffab6d6d2c65e997eafa7378f4ead377cb6f2))
|
|
7
|
+
|
|
8
|
+
## [2.7.1](https://github.com/MTES-MCT/monitor-ui/compare/v2.7.0...v2.7.1) (2023-01-13)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **fields:** handle detached click outside for time in DatePicker & DateRangePicker ([afa0a13](https://github.com/MTES-MCT/monitor-ui/commit/afa0a13394f650b0d26a5cf868a325cc79335dcb))
|
|
14
|
+
|
|
1
15
|
# [2.7.0](https://github.com/MTES-MCT/monitor-ui/compare/v2.6.0...v2.7.0) (2023-01-12)
|
|
2
16
|
|
|
3
17
|
|
package/index.js
CHANGED
|
@@ -1955,9 +1955,9 @@ const Dropdown = Object.assign(RawDropdown, {
|
|
|
1955
1955
|
});
|
|
1956
1956
|
|
|
1957
1957
|
const ICON_SIZE = {
|
|
1958
|
-
[Size.LARGE]:
|
|
1959
|
-
[Size.NORMAL]:
|
|
1960
|
-
[Size.SMALL]:
|
|
1958
|
+
[Size.LARGE]: 20,
|
|
1959
|
+
[Size.NORMAL]: 20,
|
|
1960
|
+
[Size.SMALL]: 12
|
|
1961
1961
|
};
|
|
1962
1962
|
function Button({ accent = Accent.PRIMARY, children, Icon, isFullWidth = false, size = Size.NORMAL, type = 'button', ...nativeProps }) {
|
|
1963
1963
|
const commonChildren = useMemo(() => (jsxs(Fragment, { children: [Icon && jsx(Icon, { size: ICON_SIZE[size] }), children] })), [children, Icon, size]);
|
|
@@ -3440,9 +3440,13 @@ dayjs_minExports.tz.setDefault('UTC');
|
|
|
3440
3440
|
* `2022-01-02T03:04:05.006Z` => `2022-01-02T03:04:05.006+01:00` (or `+02:00` during DST) in Europe/Paris timezone.
|
|
3441
3441
|
*/
|
|
3442
3442
|
function getLocalizedDayjs(utcDate) {
|
|
3443
|
+
if (typeof utcDate === 'string') {
|
|
3444
|
+
return dayjs_minExports(utcDate);
|
|
3445
|
+
}
|
|
3446
|
+
const utcDateAsDate = dayjs_minExports(utcDate).toDate();
|
|
3443
3447
|
// The number of minutes returned by getTimezoneOffset() is positive if the local time zone is behind UTC,
|
|
3444
3448
|
// and negative if the local time zone is ahead of UTC. For example, for UTC+10, -600 will be returned.
|
|
3445
|
-
const timezoneOffsetInMinutes =
|
|
3449
|
+
const timezoneOffsetInMinutes = utcDateAsDate.getTimezoneOffset();
|
|
3446
3450
|
return dayjs_minExports(utcDate).add(timezoneOffsetInMinutes, 'minutes');
|
|
3447
3451
|
}
|
|
3448
3452
|
|
|
@@ -4463,7 +4467,7 @@ const Box$5 = styled.div `
|
|
|
4463
4467
|
|
|
4464
4468
|
function DatePicker({ baseContainer, defaultValue,
|
|
4465
4469
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4466
|
-
disabled = false, isCompact = false, isHistorical = false, isLabelHidden = false, isLight = false, label, minutesRange = 15, onChange, withTime = false, ...nativeProps }) {
|
|
4470
|
+
disabled = false, isCompact = false, isHistorical = false, isLabelHidden = false, isLight = false, isStringDate = false, label, minutesRange = 15, onChange, withTime = false, ...nativeProps }) {
|
|
4467
4471
|
const boxRef = useRef();
|
|
4468
4472
|
const dateInputRef = useRef();
|
|
4469
4473
|
const timeInputRef = useRef();
|
|
@@ -4481,9 +4485,14 @@ disabled = false, isCompact = false, isHistorical = false, isLabelHidden = false
|
|
|
4481
4485
|
if (!onChange || !selectedDateRef.current) {
|
|
4482
4486
|
return;
|
|
4483
4487
|
}
|
|
4484
|
-
const
|
|
4485
|
-
|
|
4486
|
-
|
|
4488
|
+
const nextDateAsDayjs = getUtcizedDayjs(selectedDateRef.current);
|
|
4489
|
+
if (isStringDate) {
|
|
4490
|
+
onChange(nextDateAsDayjs.toISOString());
|
|
4491
|
+
}
|
|
4492
|
+
else {
|
|
4493
|
+
onChange(nextDateAsDayjs.toDate());
|
|
4494
|
+
}
|
|
4495
|
+
}, [isStringDate, onChange]);
|
|
4487
4496
|
const closeCalendarPicker = useCallback(() => {
|
|
4488
4497
|
isCalendarPickerOpenRef.current = false;
|
|
4489
4498
|
forceUpdate();
|
|
@@ -4769,7 +4778,7 @@ var DateRangePosition;
|
|
|
4769
4778
|
|
|
4770
4779
|
function DateRangePicker({ baseContainer, defaultValue,
|
|
4771
4780
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4772
|
-
disabled = false, isCompact = false, isHistorical = false, isLabelHidden = false, isLight = false, label, minutesRange = 15, onChange, withTime = false, ...nativeProps }) {
|
|
4781
|
+
disabled = false, isCompact = false, isHistorical = false, isLabelHidden = false, isLight = false, isStringDate = false, label, minutesRange = 15, onChange, withTime = false, ...nativeProps }) {
|
|
4773
4782
|
const startDateInputRef = useRef();
|
|
4774
4783
|
const startTimeInputRef = useRef();
|
|
4775
4784
|
const endDateInputRef = useRef();
|
|
@@ -4794,11 +4803,19 @@ disabled = false, isCompact = false, isHistorical = false, isLabelHidden = false
|
|
|
4794
4803
|
if (!onChange || !selectedStartDateRef.current || !selectedEndDateRef.current) {
|
|
4795
4804
|
return;
|
|
4796
4805
|
}
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4806
|
+
if (isStringDate) {
|
|
4807
|
+
const utcizedStartDateAsString = getUtcizedDayjs(selectedStartDateRef.current).toISOString();
|
|
4808
|
+
const utcizedEndDateAsString = getUtcizedDayjs(selectedEndDateRef.current).toISOString();
|
|
4809
|
+
const nextDateAsStringRange = [utcizedStartDateAsString, utcizedEndDateAsString];
|
|
4810
|
+
onChange(nextDateAsStringRange);
|
|
4811
|
+
}
|
|
4812
|
+
else {
|
|
4813
|
+
const utcizedStartDate = getUtcizedDayjs(selectedStartDateRef.current).toDate();
|
|
4814
|
+
const utcizedEndDate = getUtcizedDayjs(selectedEndDateRef.current).toDate();
|
|
4815
|
+
const nextDateRange = [utcizedStartDate, utcizedEndDate];
|
|
4816
|
+
onChange(nextDateRange);
|
|
4817
|
+
}
|
|
4818
|
+
}, [isStringDate, onChange]);
|
|
4802
4819
|
const closeRangeCalendarPicker = useCallback(() => {
|
|
4803
4820
|
isRangeCalendarPickerOpenRef.current = false;
|
|
4804
4821
|
forceUpdate();
|
|
@@ -5335,18 +5352,20 @@ function FormikCheckbox({ name, ...originalProps }) {
|
|
|
5335
5352
|
return jsx(Checkbox, { defaultChecked: defaultChecked, name: name, onChange: helpers.setValue, ...originalProps });
|
|
5336
5353
|
}
|
|
5337
5354
|
|
|
5355
|
+
const UntypedDatePicker = DatePicker;
|
|
5338
5356
|
function FormikDatePicker({ name, ...originalProps }) {
|
|
5339
5357
|
const [field, , helpers] = useField(name);
|
|
5340
5358
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5341
5359
|
const defaultValue = useMemo(() => field.value, []);
|
|
5342
|
-
return jsx(
|
|
5360
|
+
return jsx(UntypedDatePicker, { defaultValue: defaultValue, onChange: helpers.setValue, ...originalProps });
|
|
5343
5361
|
}
|
|
5344
5362
|
|
|
5363
|
+
const UntypedDateRangePicker = DateRangePicker;
|
|
5345
5364
|
function FormikDateRangePicker({ name, ...originalProps }) {
|
|
5346
5365
|
const [field, , helpers] = useField(name);
|
|
5347
5366
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
5348
5367
|
const defaultValue = useMemo(() => field.value, []);
|
|
5349
|
-
return jsx(
|
|
5368
|
+
return jsx(UntypedDateRangePicker, { defaultValue: defaultValue, onChange: helpers.setValue, ...originalProps });
|
|
5350
5369
|
}
|
|
5351
5370
|
|
|
5352
5371
|
function FormikEffect({ onChange }) {
|