@navikt/ds-react 2.8.12 → 2.8.14

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.
Files changed (42) hide show
  1. package/cjs/date/datepicker/caption/DropdownCaption.js +6 -2
  2. package/cjs/date/hooks/useDatepicker.js +11 -5
  3. package/cjs/date/hooks/useMonthPicker.js +12 -6
  4. package/cjs/date/monthpicker/MonthCaption.js +18 -15
  5. package/cjs/date/utils/check-dates.js +1 -5
  6. package/cjs/date/utils/get-dates.js +9 -1
  7. package/cjs/date/utils/index.js +1 -2
  8. package/esm/date/datepicker/caption/DropdownCaption.js +6 -2
  9. package/esm/date/datepicker/caption/DropdownCaption.js.map +1 -1
  10. package/esm/date/hooks/useDatepicker.js +12 -6
  11. package/esm/date/hooks/useDatepicker.js.map +1 -1
  12. package/esm/date/hooks/useEscape.d.ts +1 -2
  13. package/esm/date/hooks/useEscape.js.map +1 -1
  14. package/esm/date/hooks/useMonthPicker.js +13 -7
  15. package/esm/date/hooks/useMonthPicker.js.map +1 -1
  16. package/esm/date/hooks/useOutsideClickHandler.d.ts +1 -2
  17. package/esm/date/hooks/useOutsideClickHandler.js.map +1 -1
  18. package/esm/date/monthpicker/MonthCaption.js +19 -16
  19. package/esm/date/monthpicker/MonthCaption.js.map +1 -1
  20. package/esm/date/utils/check-dates.d.ts +0 -1
  21. package/esm/date/utils/check-dates.js +0 -3
  22. package/esm/date/utils/check-dates.js.map +1 -1
  23. package/esm/date/utils/get-dates.d.ts +1 -1
  24. package/esm/date/utils/get-dates.js +9 -1
  25. package/esm/date/utils/get-dates.js.map +1 -1
  26. package/esm/date/utils/index.d.ts +1 -1
  27. package/esm/date/utils/index.js +1 -1
  28. package/esm/date/utils/index.js.map +1 -1
  29. package/package.json +3 -3
  30. package/src/date/datepicker/caption/DropdownCaption.tsx +9 -3
  31. package/src/date/datepicker/datepicker.stories.tsx +2 -3
  32. package/src/date/hooks/useDatepicker.tsx +15 -6
  33. package/src/date/hooks/useEscape.tsx +2 -2
  34. package/src/date/hooks/useMonthPicker.tsx +16 -7
  35. package/src/date/hooks/useOutsideClickHandler.tsx +2 -2
  36. package/src/date/monthpicker/MonthCaption.tsx +21 -17
  37. package/src/date/monthpicker/monthpicker.stories.tsx +3 -1
  38. package/src/date/utils/__tests__/check-dates.test.ts +1 -27
  39. package/src/date/utils/__tests__/get-dates.test.ts +44 -2
  40. package/src/date/utils/check-dates.ts +0 -4
  41. package/src/date/utils/get-dates.ts +17 -1
  42. package/src/date/utils/index.ts +1 -1
@@ -13,6 +13,7 @@ const react_day_picker_1 = require("react-day-picker");
13
13
  const __1 = require("../../..");
14
14
  const get_dates_1 = require("../../utils/get-dates");
15
15
  const labels_1 = require("../../utils/labels");
16
+ const date_fns_1 = require("date-fns");
16
17
  const DropdownCaption = ({ displayMonth, id }) => {
17
18
  const { goToMonth, nextMonth, previousMonth } = (0, react_day_picker_1.useNavigation)();
18
19
  const { fromDate, toDate, formatters: { formatYearCaption, formatMonthCaption, formatCaption }, labels: { labelPrevious, labelNext }, locale, } = (0, react_day_picker_1.useDayPicker)();
@@ -20,9 +21,12 @@ const DropdownCaption = ({ displayMonth, id }) => {
20
21
  console.warn("Using dropdownCaption required fromDate and toDate");
21
22
  return null;
22
23
  }
23
- const handleYearChange = (e) => goToMonth((0, setYear_1.default)((0, startOfMonth_1.default)(displayMonth), Number(e.target.value)));
24
+ const handleYearChange = (e) => {
25
+ const newMonth = (0, setYear_1.default)((0, startOfMonth_1.default)(displayMonth), Number(e.target.value));
26
+ goToMonth((0, startOfMonth_1.default)((0, date_fns_1.min)([(0, date_fns_1.max)([newMonth, fromDate]), toDate])));
27
+ };
24
28
  const handleMonthChange = (e) => goToMonth((0, setMonth_1.default)((0, startOfMonth_1.default)(displayMonth), Number(e.target.value)));
25
- const years = (0, get_dates_1.getYears)(fromDate, toDate);
29
+ const years = (0, get_dates_1.getYears)(fromDate, toDate, displayMonth.getFullYear());
26
30
  const months = (0, get_dates_1.getMonths)(fromDate, toDate, displayMonth);
27
31
  const previousLabel = labelPrevious(previousMonth, { locale });
28
32
  const nextLabel = labelNext(nextMonth, { locale });
@@ -27,12 +27,18 @@ const useDatepicker = (opt = {}) => {
27
27
  ? (0, utils_1.formatDateForInput)(defaultSelected, locale, "date", inputFormat)
28
28
  : "";
29
29
  const [inputValue, setInputValue] = (0, react_1.useState)(defaultInputValue);
30
- (0, useOutsideClickHandler_1.useOutsideClickHandler)(open, setOpen, [
30
+ const handleOpen = (0, react_1.useCallback)((open) => {
31
+ var _a, _b;
32
+ setOpen(open);
33
+ !open &&
34
+ setMonth((_b = (_a = selectedDay !== null && selectedDay !== void 0 ? selectedDay : defaultSelected) !== null && _a !== void 0 ? _a : defaultMonth) !== null && _b !== void 0 ? _b : today);
35
+ }, [defaultMonth, defaultSelected, selectedDay, today]);
36
+ (0, useOutsideClickHandler_1.useOutsideClickHandler)(open, handleOpen, [
31
37
  daypickerRef,
32
38
  inputRef.current,
33
39
  (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
34
40
  ]);
35
- (0, useEscape_1.useEscape)(open, setOpen, inputRef);
41
+ (0, useEscape_1.useEscape)(open, handleOpen, inputRef);
36
42
  const updateDate = (date) => {
37
43
  onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(date);
38
44
  setSelectedDay(date);
@@ -52,7 +58,7 @@ const useDatepicker = (opt = {}) => {
52
58
  setInputValue(date ? (0, utils_1.formatDateForInput)(date, locale, "date", inputFormat) : "");
53
59
  };
54
60
  const handleFocus = (e) => {
55
- !open && openOnFocus && setOpen(true);
61
+ !open && openOnFocus && handleOpen(true);
56
62
  let day = (0, utils_1.parseDate)(e.target.value, today, locale, "date", allowTwoDigitYear);
57
63
  if ((0, utils_1.isValidDate)(day)) {
58
64
  setMonth(day);
@@ -67,7 +73,7 @@ const useDatepicker = (opt = {}) => {
67
73
  /* Only allow de-selecting if not required */
68
74
  const handleDayClick = (day, { selected }) => {
69
75
  if (day && !selected) {
70
- setOpen(false);
76
+ handleOpen(false);
71
77
  inputRef.current && inputRef.current.focus();
72
78
  }
73
79
  if (!required && selected) {
@@ -127,7 +133,7 @@ const useDatepicker = (opt = {}) => {
127
133
  toDate,
128
134
  today,
129
135
  open,
130
- onOpenToggle: () => setOpen((x) => !x),
136
+ onOpenToggle: () => handleOpen(!open),
131
137
  disabled,
132
138
  disableWeekends,
133
139
  ref: setDaypickerRef,
@@ -10,7 +10,7 @@ const useMonthpicker = (opt = {}) => {
10
10
  var _a, _b;
11
11
  const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, openOnFocus = true, } = opt;
12
12
  const [defaultSelected, setDefaultSelected] = (0, react_1.useState)(_defaultSelected);
13
- const today = new Date();
13
+ const today = (0, react_1.useMemo)(() => new Date(), []);
14
14
  const locale = (0, utils_1.getLocaleFromString)(_locale);
15
15
  const inputRef = (0, react_1.useRef)(null);
16
16
  const [monthpickerRef, setMonthpickerRef] = (0, react_1.useState)();
@@ -22,12 +22,18 @@ const useMonthpicker = (opt = {}) => {
22
22
  ? (0, utils_1.formatDateForInput)(defaultSelected, locale, "month", inputFormat)
23
23
  : "";
24
24
  const [inputValue, setInputValue] = (0, react_1.useState)(defaultInputValue);
25
- (0, useOutsideClickHandler_1.useOutsideClickHandler)(open, setOpen, [
25
+ const handleOpen = (0, react_1.useCallback)((open) => {
26
+ var _a, _b;
27
+ setOpen(open);
28
+ !open &&
29
+ setYear((_b = (_a = selectedMonth !== null && selectedMonth !== void 0 ? selectedMonth : defaultSelected) !== null && _a !== void 0 ? _a : defaultYear) !== null && _b !== void 0 ? _b : today);
30
+ }, [defaultSelected, defaultYear, selectedMonth, today]);
31
+ (0, useOutsideClickHandler_1.useOutsideClickHandler)(open, handleOpen, [
26
32
  monthpickerRef,
27
33
  inputRef.current,
28
34
  (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
29
35
  ]);
30
- (0, useEscape_1.useEscape)(open, setOpen, inputRef);
36
+ (0, useEscape_1.useEscape)(open, handleOpen, inputRef);
31
37
  const updateMonth = (date) => {
32
38
  onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(date);
33
39
  setSelectedMonth(date);
@@ -48,7 +54,7 @@ const useMonthpicker = (opt = {}) => {
48
54
  };
49
55
  const handleFocus = (e) => {
50
56
  var _a;
51
- !open && openOnFocus && setOpen(true);
57
+ !open && openOnFocus && handleOpen(true);
52
58
  let day = (0, utils_1.parseDate)(e.target.value, today, locale, "month", allowTwoDigitYear);
53
59
  if ((0, utils_1.isValidDate)(day)) {
54
60
  setYear(day);
@@ -66,7 +72,7 @@ const useMonthpicker = (opt = {}) => {
66
72
  /* Only allow de-selecting if not required */
67
73
  const handleMonthClick = (month) => {
68
74
  if (month) {
69
- setOpen(false);
75
+ handleOpen(false);
70
76
  inputRef.current && inputRef.current.focus();
71
77
  setYear(month);
72
78
  }
@@ -133,7 +139,7 @@ const useMonthpicker = (opt = {}) => {
133
139
  fromDate,
134
140
  toDate,
135
141
  open,
136
- onOpenToggle: () => setOpen((x) => !x),
142
+ onOpenToggle: () => handleOpen(!open),
137
143
  disabled,
138
144
  ref: setMonthpickerRef,
139
145
  };
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.MonthCaption = void 0;
7
7
  const ds_icons_1 = require("@navikt/ds-icons");
8
- const isSameYear_1 = __importDefault(require("date-fns/isSameYear"));
9
8
  const setYear_1 = __importDefault(require("date-fns/setYear"));
10
9
  const startOfMonth_1 = __importDefault(require("date-fns/startOfMonth"));
11
10
  const startOfYear_1 = __importDefault(require("date-fns/startOfYear"));
@@ -14,6 +13,7 @@ const react_day_picker_1 = require("react-day-picker");
14
13
  const __1 = require("../..");
15
14
  const context_1 = require("../context");
16
15
  const utils_1 = require("../utils");
16
+ const date_fns_1 = require("date-fns");
17
17
  const MonthCaption = () => {
18
18
  const { fromDate, toDate, formatters: { formatYearCaption }, locale, } = (0, react_day_picker_1.useDayPicker)();
19
19
  const { hasDropdown, year, toYear } = (0, context_1.useSharedMonthContext)();
@@ -24,27 +24,30 @@ const MonthCaption = () => {
24
24
  for (let year = fromYear; year <= toYear; year++) {
25
25
  years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), year));
26
26
  }
27
+ if (!years.map((x) => x.getFullYear()).includes(year.getFullYear())) {
28
+ years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), year.getFullYear()));
29
+ }
30
+ years.sort((a, b) => a.getFullYear() - b.getFullYear());
27
31
  }
28
32
  const handleYearChange = (e) => toYear((0, setYear_1.default)((0, startOfMonth_1.default)(new Date()), Number(e.target.value)));
29
33
  const handleButtonClick = (val) => {
30
- let newMonth;
31
- if (hasDropdown && (0, utils_1.hasNextYear)(year, years, val)) {
32
- newMonth = (0, setYear_1.default)(new Date(), year.getFullYear() + val);
33
- toYear(newMonth);
34
- }
35
- else if (!hasDropdown) {
36
- const newYear = Number(year.getFullYear() + val);
37
- newMonth = (0, setYear_1.default)(year, newYear);
38
- toYear(newMonth);
39
- }
34
+ const newYear = Number(year.getFullYear() + val);
35
+ toYear((0, setYear_1.default)(year, newYear));
36
+ };
37
+ const hasPrevYear = () => {
38
+ return fromDate
39
+ ? (0, date_fns_1.isBefore)((year === null || year === void 0 ? void 0 : year.getFullYear()) - 1, fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear())
40
+ : true;
40
41
  };
41
- const hasFollowingYear = (value) => {
42
- return years.some((y) => (0, isSameYear_1.default)(y, (0, setYear_1.default)(year, Number(year.getFullYear() + value))));
42
+ const hasNextYear = () => {
43
+ return toDate
44
+ ? (0, date_fns_1.isAfter)((year === null || year === void 0 ? void 0 : year.getFullYear()) + 1, toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear())
45
+ : true;
43
46
  };
44
47
  return (react_1.default.createElement("div", { className: "navds-date__caption" },
45
- react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled: !hasDropdown ? false : !hasFollowingYear(-1), onClick: () => handleButtonClick(-1), "aria-label": (0, utils_1.labelPrevYear)(locale === null || locale === void 0 ? void 0 : locale.code), icon: react_1.default.createElement(ds_icons_1.Left, { "aria-hidden": true }), variant: "tertiary", type: "button" }),
48
+ react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled: hasPrevYear(), onClick: () => handleButtonClick(-1), "aria-label": (0, utils_1.labelPrevYear)(locale === null || locale === void 0 ? void 0 : locale.code), icon: react_1.default.createElement(ds_icons_1.Left, { "aria-hidden": true }), variant: "tertiary", type: "button" }),
46
49
  hasDropdown ? (react_1.default.createElement(__1.Select, { label: "velg \u00E5r", hideLabel: true, value: year === null || year === void 0 ? void 0 : year.getFullYear(), onChange: handleYearChange, className: "navds-date__caption__year" }, years.map((year) => (react_1.default.createElement("option", { key: year.getFullYear(), value: year.getFullYear() }, formatYearCaption(year, { locale })))))) : (react_1.default.createElement("span", { className: "navds-date__year-label", "aria-live": "polite" }, year.getFullYear())),
47
- react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled: !hasDropdown ? false : !hasFollowingYear(1), onClick: () => handleButtonClick(1), "aria-label": (0, utils_1.labelNextYear)(locale === null || locale === void 0 ? void 0 : locale.code), icon: react_1.default.createElement(ds_icons_1.Right, { "aria-hidden": true }), variant: "tertiary", type: "button" })));
50
+ react_1.default.createElement(__1.Button, { className: "navds-date__caption-button", disabled: hasNextYear(), onClick: () => handleButtonClick(1), "aria-label": (0, utils_1.labelNextYear)(locale === null || locale === void 0 ? void 0 : locale.code), icon: react_1.default.createElement(ds_icons_1.Right, { "aria-hidden": true }), variant: "tertiary", type: "button" })));
48
51
  };
49
52
  exports.MonthCaption = MonthCaption;
50
53
  exports.default = exports.MonthCaption;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.hasNextYear = exports.isValidDate = exports.dateIsInCurrentMonth = void 0;
6
+ exports.isValidDate = exports.dateIsInCurrentMonth = void 0;
7
7
  const setYear_1 = __importDefault(require("date-fns/setYear"));
8
8
  const isThisMonth_1 = __importDefault(require("date-fns/isThisMonth"));
9
9
  const dateIsInCurrentMonth = (date, dateToCompare) => {
@@ -15,7 +15,3 @@ function isValidDate(day) {
15
15
  return day && !isNaN(day === null || day === void 0 ? void 0 : day.getTime()) && day.getFullYear() > 999;
16
16
  }
17
17
  exports.isValidDate = isValidDate;
18
- const hasNextYear = (year, years, val) => {
19
- return years.some((x) => year.getFullYear() + val === x.getFullYear());
20
- };
21
- exports.hasNextYear = hasNextYear;
@@ -35,16 +35,24 @@ const getMonths = (start, end, current) => {
35
35
  dropdownMonths.push((0, setMonth_1.default)(date, month));
36
36
  }
37
37
  }
38
+ if (!dropdownMonths.map((d) => d.getMonth()).includes(current.getMonth())) {
39
+ dropdownMonths.push(current);
40
+ }
41
+ dropdownMonths.sort((a, b) => a.getMonth() - b.getMonth());
38
42
  return dropdownMonths;
39
43
  };
40
44
  exports.getMonths = getMonths;
41
- const getYears = (start, end) => {
45
+ const getYears = (start, end, currentYear) => {
42
46
  const years = [];
43
47
  const fromYear = start.getFullYear();
44
48
  const toYear = end.getFullYear();
45
49
  for (let year = fromYear; year <= toYear; year++) {
46
50
  years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), year));
47
51
  }
52
+ if (fromYear > currentYear || toYear < currentYear) {
53
+ years.push((0, setYear_1.default)((0, startOfYear_1.default)(new Date()), currentYear));
54
+ }
55
+ years.sort((a, b) => a.getFullYear() - b.getFullYear());
48
56
  return years;
49
57
  };
50
58
  exports.getYears = getYears;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nextEnabled = exports.isDateInRange = exports.isMatch = exports.getInitialYear = exports.hasNextYear = exports.isValidDate = exports.dateIsInCurrentMonth = exports.disableDate = exports.getLocaleFromString = exports.parseDate = exports.INPUT_DATE_STRING_FORMAT_MONTH = exports.INPUT_DATE_STRING_FORMAT_DATE = exports.labelPrevYear = exports.labelNextYear = exports.labels = exports.labelYearDropdown = exports.labelMonthDropdown = exports.getYears = exports.getMonths = exports.formatDateForInput = void 0;
3
+ exports.nextEnabled = exports.isDateInRange = exports.isMatch = exports.getInitialYear = exports.isValidDate = exports.dateIsInCurrentMonth = exports.disableDate = exports.getLocaleFromString = exports.parseDate = exports.INPUT_DATE_STRING_FORMAT_MONTH = exports.INPUT_DATE_STRING_FORMAT_DATE = exports.labelPrevYear = exports.labelNextYear = exports.labels = exports.labelYearDropdown = exports.labelMonthDropdown = exports.getYears = exports.getMonths = exports.formatDateForInput = void 0;
4
4
  var format_date_1 = require("./format-date");
5
5
  Object.defineProperty(exports, "formatDateForInput", { enumerable: true, get: function () { return format_date_1.formatDateForInput; } });
6
6
  var get_dates_1 = require("./get-dates");
@@ -23,7 +23,6 @@ Object.defineProperty(exports, "disableDate", { enumerable: true, get: function
23
23
  var check_dates_1 = require("./check-dates");
24
24
  Object.defineProperty(exports, "dateIsInCurrentMonth", { enumerable: true, get: function () { return check_dates_1.dateIsInCurrentMonth; } });
25
25
  Object.defineProperty(exports, "isValidDate", { enumerable: true, get: function () { return check_dates_1.isValidDate; } });
26
- Object.defineProperty(exports, "hasNextYear", { enumerable: true, get: function () { return check_dates_1.hasNextYear; } });
27
26
  var get_initial_year_1 = require("./get-initial-year");
28
27
  Object.defineProperty(exports, "getInitialYear", { enumerable: true, get: function () { return get_initial_year_1.getInitialYear; } });
29
28
  var is_match_1 = require("./is-match");
@@ -7,6 +7,7 @@ import { useDayPicker, useNavigation } from "react-day-picker";
7
7
  import { Button, Select } from "../../..";
8
8
  import { getMonths, getYears } from "../../utils/get-dates";
9
9
  import { labelMonthDropdown, labelYearDropdown } from "../../utils/labels";
10
+ import { max, min } from "date-fns";
10
11
  export const DropdownCaption = ({ displayMonth, id }) => {
11
12
  const { goToMonth, nextMonth, previousMonth } = useNavigation();
12
13
  const { fromDate, toDate, formatters: { formatYearCaption, formatMonthCaption, formatCaption }, labels: { labelPrevious, labelNext }, locale, } = useDayPicker();
@@ -14,9 +15,12 @@ export const DropdownCaption = ({ displayMonth, id }) => {
14
15
  console.warn("Using dropdownCaption required fromDate and toDate");
15
16
  return null;
16
17
  }
17
- const handleYearChange = (e) => goToMonth(setYear(startOfMonth(displayMonth), Number(e.target.value)));
18
+ const handleYearChange = (e) => {
19
+ const newMonth = setYear(startOfMonth(displayMonth), Number(e.target.value));
20
+ goToMonth(startOfMonth(min([max([newMonth, fromDate]), toDate])));
21
+ };
18
22
  const handleMonthChange = (e) => goToMonth(setMonth(startOfMonth(displayMonth), Number(e.target.value)));
19
- const years = getYears(fromDate, toDate);
23
+ const years = getYears(fromDate, toDate, displayMonth.getFullYear());
20
24
  const months = getMonths(fromDate, toDate, displayMonth);
21
25
  const previousLabel = labelPrevious(previousMonth, { locale });
22
26
  const nextLabel = labelNext(nextMonth, { locale });
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownCaption.js","sourceRoot":"","sources":["../../../../src/date/datepicker/caption/DropdownCaption.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DropdownCaption.js","sourceRoot":"","sources":["../../../../src/date/datepicker/caption/DropdownCaption.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import differenceInCalendarDays from "date-fns/differenceInCalendarDays";
2
2
  import isWeekend from "date-fns/isWeekend";
3
- import { useRef, useState } from "react";
3
+ import { useCallback, useRef, useState } from "react";
4
4
  import { isMatch } from "react-day-picker";
5
5
  import { formatDateForInput, getLocaleFromString, isValidDate, parseDate, } from "../utils";
6
6
  import { useEscape } from "./useEscape";
@@ -21,12 +21,18 @@ export const useDatepicker = (opt = {}) => {
21
21
  ? formatDateForInput(defaultSelected, locale, "date", inputFormat)
22
22
  : "";
23
23
  const [inputValue, setInputValue] = useState(defaultInputValue);
24
- useOutsideClickHandler(open, setOpen, [
24
+ const handleOpen = useCallback((open) => {
25
+ var _a, _b;
26
+ setOpen(open);
27
+ !open &&
28
+ setMonth((_b = (_a = selectedDay !== null && selectedDay !== void 0 ? selectedDay : defaultSelected) !== null && _a !== void 0 ? _a : defaultMonth) !== null && _b !== void 0 ? _b : today);
29
+ }, [defaultMonth, defaultSelected, selectedDay, today]);
30
+ useOutsideClickHandler(open, handleOpen, [
25
31
  daypickerRef,
26
32
  inputRef.current,
27
33
  (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
28
34
  ]);
29
- useEscape(open, setOpen, inputRef);
35
+ useEscape(open, handleOpen, inputRef);
30
36
  const updateDate = (date) => {
31
37
  onDateChange === null || onDateChange === void 0 ? void 0 : onDateChange(date);
32
38
  setSelectedDay(date);
@@ -46,7 +52,7 @@ export const useDatepicker = (opt = {}) => {
46
52
  setInputValue(date ? formatDateForInput(date, locale, "date", inputFormat) : "");
47
53
  };
48
54
  const handleFocus = (e) => {
49
- !open && openOnFocus && setOpen(true);
55
+ !open && openOnFocus && handleOpen(true);
50
56
  let day = parseDate(e.target.value, today, locale, "date", allowTwoDigitYear);
51
57
  if (isValidDate(day)) {
52
58
  setMonth(day);
@@ -61,7 +67,7 @@ export const useDatepicker = (opt = {}) => {
61
67
  /* Only allow de-selecting if not required */
62
68
  const handleDayClick = (day, { selected }) => {
63
69
  if (day && !selected) {
64
- setOpen(false);
70
+ handleOpen(false);
65
71
  inputRef.current && inputRef.current.focus();
66
72
  }
67
73
  if (!required && selected) {
@@ -121,7 +127,7 @@ export const useDatepicker = (opt = {}) => {
121
127
  toDate,
122
128
  today,
123
129
  open,
124
- onOpenToggle: () => setOpen((x) => !x),
130
+ onOpenToggle: () => handleOpen(!open),
125
131
  disabled,
126
132
  disableWeekends,
127
133
  ref: setDaypickerRef,
@@ -1 +1 @@
1
- {"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDatepicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useDatepicker.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- import React from "react";
2
- export declare const useEscape: (open: boolean, setOpen: React.Dispatch<React.SetStateAction<boolean>>, focusRef: any) => void;
1
+ export declare const useEscape: (open: boolean, setOpen: (openState: boolean) => void, focusRef: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useEscape.js","sourceRoot":"","sources":["../../../src/date/hooks/useEscape.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAa,EACb,OAAsD,EACtD,QAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,WAAW,EAAE,EAClD,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAElD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"useEscape.js","sourceRoot":"","sources":["../../../src/date/hooks/useEscape.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,IAAa,EACb,OAAqC,EACrC,QAAa,EACb,EAAE;IACF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE;QACnC,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,KAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAChD,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAExB,MAAM,MAAM,GAAG,WAAW,CACxB,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,WAAW,EAAE,EAClD,CAAC,WAAW,EAAE,IAAI,CAAC,CACpB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAElD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACf,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { useRef, useState } from "react";
1
+ import { useCallback, useMemo, useRef, useState } from "react";
2
2
  import { formatDateForInput, getLocaleFromString, isMatch, isValidDate, parseDate, } from "../utils";
3
3
  import { useEscape } from "./useEscape";
4
4
  import { useOutsideClickHandler } from "./useOutsideClickHandler";
@@ -7,7 +7,7 @@ export const useMonthpicker = (opt = {}) => {
7
7
  var _a, _b;
8
8
  const { locale: _locale = "nb", defaultSelected: _defaultSelected, fromDate, toDate, disabled, required, onMonthChange, inputFormat, onValidate, defaultYear, allowTwoDigitYear = true, openOnFocus = true, } = opt;
9
9
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
10
- const today = new Date();
10
+ const today = useMemo(() => new Date(), []);
11
11
  const locale = getLocaleFromString(_locale);
12
12
  const inputRef = useRef(null);
13
13
  const [monthpickerRef, setMonthpickerRef] = useState();
@@ -19,12 +19,18 @@ export const useMonthpicker = (opt = {}) => {
19
19
  ? formatDateForInput(defaultSelected, locale, "month", inputFormat)
20
20
  : "";
21
21
  const [inputValue, setInputValue] = useState(defaultInputValue);
22
- useOutsideClickHandler(open, setOpen, [
22
+ const handleOpen = useCallback((open) => {
23
+ var _a, _b;
24
+ setOpen(open);
25
+ !open &&
26
+ setYear((_b = (_a = selectedMonth !== null && selectedMonth !== void 0 ? selectedMonth : defaultSelected) !== null && _a !== void 0 ? _a : defaultYear) !== null && _b !== void 0 ? _b : today);
27
+ }, [defaultSelected, defaultYear, selectedMonth, today]);
28
+ useOutsideClickHandler(open, handleOpen, [
23
29
  monthpickerRef,
24
30
  inputRef.current,
25
31
  (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.nextSibling,
26
32
  ]);
27
- useEscape(open, setOpen, inputRef);
33
+ useEscape(open, handleOpen, inputRef);
28
34
  const updateMonth = (date) => {
29
35
  onMonthChange === null || onMonthChange === void 0 ? void 0 : onMonthChange(date);
30
36
  setSelectedMonth(date);
@@ -45,7 +51,7 @@ export const useMonthpicker = (opt = {}) => {
45
51
  };
46
52
  const handleFocus = (e) => {
47
53
  var _a;
48
- !open && openOnFocus && setOpen(true);
54
+ !open && openOnFocus && handleOpen(true);
49
55
  let day = parseDate(e.target.value, today, locale, "month", allowTwoDigitYear);
50
56
  if (isValidDate(day)) {
51
57
  setYear(day);
@@ -63,7 +69,7 @@ export const useMonthpicker = (opt = {}) => {
63
69
  /* Only allow de-selecting if not required */
64
70
  const handleMonthClick = (month) => {
65
71
  if (month) {
66
- setOpen(false);
72
+ handleOpen(false);
67
73
  inputRef.current && inputRef.current.focus();
68
74
  setYear(month);
69
75
  }
@@ -130,7 +136,7 @@ export const useMonthpicker = (opt = {}) => {
130
136
  fromDate,
131
137
  toDate,
132
138
  open,
133
- onOpenToggle: () => setOpen((x) => !x),
139
+ onOpenToggle: () => handleOpen(!open),
134
140
  disabled,
135
141
  ref: setMonthpickerRef,
136
142
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMonthPicker.js","sourceRoot":"","sources":["../../../src/date/hooks/useMonthPicker.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1 @@
1
- import React from "react";
2
- export declare const useOutsideClickHandler: (open: boolean, setOpen: React.Dispatch<React.SetStateAction<boolean>>, refs: Array<any>) => void;
1
+ export declare const useOutsideClickHandler: (open: boolean, setOpen: (openState: boolean) => void, refs: Array<any>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"useOutsideClickHandler.js","sourceRoot":"","sources":["../../../src/date/hooks/useOutsideClickHandler.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAa,EACb,OAAsD,EACtD,IAAgB,EAChB,EAAE;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,CAAC,EAAE,EAAE;;QACJ,MAAM,QAAQ,GAAG,MAAA,MAAA,CAAC,CAAC,YAAY,iDAAI,0CAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,QAAQ,CAAA,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACR;QACD,IACE,CAAC,IAAI,CAAC,IAAI,CACR,CAAC,OAAO,EAAE,EAAE,CACV,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAC7D,EACD;YACA,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CACtB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE;;YACV,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,uDAAG,SAAS,EAAE,aAAa,CAAC,CAAC;YACxD,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,uDAAG,aAAa,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"useOutsideClickHandler.js","sourceRoot":"","sources":["../../../src/date/hooks/useOutsideClickHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAa,EACb,OAAqC,EACrC,IAAgB,EAChB,EAAE;IACF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,CAAC,EAAE,EAAE;;QACJ,MAAM,QAAQ,GAAG,MAAA,MAAA,CAAC,CAAC,YAAY,iDAAI,0CAAG,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAA,IAAI,CAAC,CAAA,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,QAAQ,CAAA,IAAI,CAAC,QAAQ,EAAE;YACnD,OAAO;SACR;QACD,IACE,CAAC,IAAI,CAAC,IAAI,CACR,CAAC,OAAO,EAAE,EAAE,CACV,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA,CAC7D,EACD;YACA,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;SACxB;IACH,CAAC,EACD,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CACtB,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;QACtD,OAAO,GAAG,EAAE;;YACV,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,uDAAG,SAAS,EAAE,aAAa,CAAC,CAAC;YACxD,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,mBAAmB,uDAAG,aAAa,EAAE,aAAa,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACtB,CAAC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { Left, Right } from "@navikt/ds-icons";
2
- import isSameYear from "date-fns/isSameYear";
3
2
  import setYear from "date-fns/setYear";
4
3
  import startOfMonth from "date-fns/startOfMonth";
5
4
  import startOfYear from "date-fns/startOfYear";
@@ -7,7 +6,8 @@ import React from "react";
7
6
  import { useDayPicker } from "react-day-picker";
8
7
  import { Button, Select } from "../..";
9
8
  import { useSharedMonthContext } from "../context";
10
- import { hasNextYear, labelNextYear, labelPrevYear } from "../utils";
9
+ import { labelNextYear, labelPrevYear } from "../utils";
10
+ import { isAfter, isBefore } from "date-fns";
11
11
  export const MonthCaption = () => {
12
12
  const { fromDate, toDate, formatters: { formatYearCaption }, locale, } = useDayPicker();
13
13
  const { hasDropdown, year, toYear } = useSharedMonthContext();
@@ -18,27 +18,30 @@ export const MonthCaption = () => {
18
18
  for (let year = fromYear; year <= toYear; year++) {
19
19
  years.push(setYear(startOfYear(new Date()), year));
20
20
  }
21
+ if (!years.map((x) => x.getFullYear()).includes(year.getFullYear())) {
22
+ years.push(setYear(startOfYear(new Date()), year.getFullYear()));
23
+ }
24
+ years.sort((a, b) => a.getFullYear() - b.getFullYear());
21
25
  }
22
26
  const handleYearChange = (e) => toYear(setYear(startOfMonth(new Date()), Number(e.target.value)));
23
27
  const handleButtonClick = (val) => {
24
- let newMonth;
25
- if (hasDropdown && hasNextYear(year, years, val)) {
26
- newMonth = setYear(new Date(), year.getFullYear() + val);
27
- toYear(newMonth);
28
- }
29
- else if (!hasDropdown) {
30
- const newYear = Number(year.getFullYear() + val);
31
- newMonth = setYear(year, newYear);
32
- toYear(newMonth);
33
- }
28
+ const newYear = Number(year.getFullYear() + val);
29
+ toYear(setYear(year, newYear));
30
+ };
31
+ const hasPrevYear = () => {
32
+ return fromDate
33
+ ? isBefore((year === null || year === void 0 ? void 0 : year.getFullYear()) - 1, fromDate === null || fromDate === void 0 ? void 0 : fromDate.getFullYear())
34
+ : true;
34
35
  };
35
- const hasFollowingYear = (value) => {
36
- return years.some((y) => isSameYear(y, setYear(year, Number(year.getFullYear() + value))));
36
+ const hasNextYear = () => {
37
+ return toDate
38
+ ? isAfter((year === null || year === void 0 ? void 0 : year.getFullYear()) + 1, toDate === null || toDate === void 0 ? void 0 : toDate.getFullYear())
39
+ : true;
37
40
  };
38
41
  return (React.createElement("div", { className: "navds-date__caption" },
39
- React.createElement(Button, { className: "navds-date__caption-button", disabled: !hasDropdown ? false : !hasFollowingYear(-1), onClick: () => handleButtonClick(-1), "aria-label": labelPrevYear(locale === null || locale === void 0 ? void 0 : locale.code), icon: React.createElement(Left, { "aria-hidden": true }), variant: "tertiary", type: "button" }),
42
+ React.createElement(Button, { className: "navds-date__caption-button", disabled: hasPrevYear(), onClick: () => handleButtonClick(-1), "aria-label": labelPrevYear(locale === null || locale === void 0 ? void 0 : locale.code), icon: React.createElement(Left, { "aria-hidden": true }), variant: "tertiary", type: "button" }),
40
43
  hasDropdown ? (React.createElement(Select, { label: "velg \u00E5r", hideLabel: true, value: year === null || year === void 0 ? void 0 : year.getFullYear(), onChange: handleYearChange, className: "navds-date__caption__year" }, years.map((year) => (React.createElement("option", { key: year.getFullYear(), value: year.getFullYear() }, formatYearCaption(year, { locale })))))) : (React.createElement("span", { className: "navds-date__year-label", "aria-live": "polite" }, year.getFullYear())),
41
- React.createElement(Button, { className: "navds-date__caption-button", disabled: !hasDropdown ? false : !hasFollowingYear(1), onClick: () => handleButtonClick(1), "aria-label": labelNextYear(locale === null || locale === void 0 ? void 0 : locale.code), icon: React.createElement(Right, { "aria-hidden": true }), variant: "tertiary", type: "button" })));
44
+ React.createElement(Button, { className: "navds-date__caption-button", disabled: hasNextYear(), onClick: () => handleButtonClick(1), "aria-label": labelNextYear(locale === null || locale === void 0 ? void 0 : locale.code), icon: React.createElement(Right, { "aria-hidden": true }), variant: "tertiary", type: "button" })));
42
45
  };
43
46
  export default MonthCaption;
44
47
  //# sourceMappingURL=MonthCaption.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MonthCaption.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthCaption.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MonthCaption.js","sourceRoot":"","sources":["../../../src/date/monthpicker/MonthCaption.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,MAAM,EACJ,QAAQ,EACR,MAAM,EACN,UAAU,EAAE,EAAE,iBAAiB,EAAE,EACjC,MAAM,GACP,GAAG,YAAY,EAAE,CAAC;IAEnB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,qBAAqB,EAAE,CAAC;IAE9D,MAAM,KAAK,GAAW,EAAE,CAAC;IAEzB,IAAI,WAAW,IAAI,QAAQ,IAAI,MAAM,EAAE;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACpC,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE;YAChD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;SACpD;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE;YACnE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAClE;QACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;KACzD;IAED,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,EAAE,CAC7B,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEpE,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,CAAC;QACjD,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,OAAO,QAAQ;YACb,CAAC,CAAC,QAAQ,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,IAAG,CAAC,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,EAAE,CAAC;YAC5D,CAAC,CAAC,IAAI,CAAC;IACX,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,OAAO,MAAM;YACX,CAAC,CAAC,OAAO,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,IAAG,CAAC,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;YACzD,CAAC,CAAC,IAAI,CAAC;IACX,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,qBAAqB;QAClC,oBAAC,MAAM,IACL,SAAS,EAAC,4BAA4B,EACtC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,gBACxB,aAAa,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,EACvC,IAAI,EAAE,oBAAC,IAAI,0BAAe,EAC1B,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,QAAQ,GACb;QAED,WAAW,CAAC,CAAC,CAAC,CACb,oBAAC,MAAM,IACL,KAAK,EAAC,cAAS,EACf,SAAS,QACT,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAC,2BAA2B,IAEpC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,gCAAQ,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,IACvD,iBAAiB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAC7B,CACV,CAAC,CACK,CACV,CAAC,CAAC,CAAC,CACF,8BAAM,SAAS,EAAC,wBAAwB,eAAW,QAAQ,IACxD,IAAI,CAAC,WAAW,EAAE,CACd,CACR;QACD,oBAAC,MAAM,IACL,SAAS,EAAC,4BAA4B,EACtC,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBACvB,aAAa,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,EACvC,IAAI,EAAE,oBAAC,KAAK,0BAAe,EAC3B,OAAO,EAAC,UAAU,EAClB,IAAI,EAAC,QAAQ,GACb,CACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,4 +1,3 @@
1
1
  export declare const dateIsInCurrentMonth: (date: Date, dateToCompare: Date) => boolean;
2
2
  /** @private */
3
3
  export declare function isValidDate(day: Date): boolean;
4
- export declare const hasNextYear: (year: Date, years: Date[], val: any) => boolean;
@@ -7,7 +7,4 @@ export const dateIsInCurrentMonth = (date, dateToCompare) => {
7
7
  export function isValidDate(day) {
8
8
  return day && !isNaN(day === null || day === void 0 ? void 0 : day.getTime()) && day.getFullYear() > 999;
9
9
  }
10
- export const hasNextYear = (year, years, val) => {
11
- return years.some((x) => year.getFullYear() + val === x.getFullYear());
12
- };
13
10
  //# sourceMappingURL=check-dates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-dates.js","sourceRoot":"","sources":["../../../src/date/utils/check-dates.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAU,EACV,aAAmB,EACV,EAAE;IACX,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,UAAU,WAAW,CAAC,GAAS;IACnC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,IAAU,EAAE,KAAa,EAAE,GAAQ,EAAW,EAAE;IAC1E,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC"}
1
+ {"version":3,"file":"check-dates.js","sourceRoot":"","sources":["../../../src/date/utils/check-dates.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAU,EACV,aAAmB,EACV,EAAE;IACX,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,eAAe;AACf,MAAM,UAAU,WAAW,CAAC,GAAS;IACnC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,EAAE,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AAClE,CAAC"}
@@ -1,2 +1,2 @@
1
1
  export declare const getMonths: (start: Date, end: Date, current: Date) => Date[];
2
- export declare const getYears: (start: Date, end: Date) => Date[];
2
+ export declare const getYears: (start: Date, end: Date, currentYear: number) => Date[];
@@ -29,15 +29,23 @@ export const getMonths = (start, end, current) => {
29
29
  dropdownMonths.push(setMonth(date, month));
30
30
  }
31
31
  }
32
+ if (!dropdownMonths.map((d) => d.getMonth()).includes(current.getMonth())) {
33
+ dropdownMonths.push(current);
34
+ }
35
+ dropdownMonths.sort((a, b) => a.getMonth() - b.getMonth());
32
36
  return dropdownMonths;
33
37
  };
34
- export const getYears = (start, end) => {
38
+ export const getYears = (start, end, currentYear) => {
35
39
  const years = [];
36
40
  const fromYear = start.getFullYear();
37
41
  const toYear = end.getFullYear();
38
42
  for (let year = fromYear; year <= toYear; year++) {
39
43
  years.push(setYear(startOfYear(new Date()), year));
40
44
  }
45
+ if (fromYear > currentYear || toYear < currentYear) {
46
+ years.push(setYear(startOfYear(new Date()), currentYear));
47
+ }
48
+ years.sort((a, b) => a.getFullYear() - b.getFullYear());
41
49
  return years;
42
50
  };
43
51
  //# sourceMappingURL=get-dates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-dates.js","sourceRoot":"","sources":["../../../src/date/utils/get-dates.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,OAAO,MAAM,kBAAkB,CAAC;AACvC,OAAO,YAAY,MAAM,uBAAuB,CAAC;AACjD,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAE/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAW,EAAE,GAAS,EAAE,OAAa,EAAU,EAAE;IACzE,MAAM,cAAc,GAAW,EAAE,CAAC;IAElC,IAAI,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;QAC1B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE;YACnE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC5C;KACF;SAAM,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;QACnC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,GAAG,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE;YACpD,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC5C;KACF;SAAM,IAAI,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QACrC,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACjC,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;YACtD,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC5C;KACF;SAAM;QACL,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACtC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE;YACxC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;SAC5C;KACF;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAW,EAAE,GAAS,EAAU,EAAE;IACzD,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IACjC,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,IAAI,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE;QAChD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KACpD;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
1
+ {"version":3,"file":"get-dates.js","sourceRoot":"","sources":["../../../src/date/utils/get-dates.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export { labelMonthDropdown, labelYearDropdown, labels, labelNextYear, labelPrev
4
4
  export { INPUT_DATE_STRING_FORMAT_DATE, INPUT_DATE_STRING_FORMAT_MONTH, parseDate, } from "./parse-date";
5
5
  export { getLocaleFromString } from "./locale";
6
6
  export { disableDate } from "./dates-disabled";
7
- export { dateIsInCurrentMonth, isValidDate, hasNextYear } from "./check-dates";
7
+ export { dateIsInCurrentMonth, isValidDate } from "./check-dates";
8
8
  export { getInitialYear } from "./get-initial-year";
9
9
  export { isMatch, isDateInRange, type Matcher } from "./is-match";
10
10
  export { nextEnabled } from "./navigation";
@@ -4,7 +4,7 @@ export { labelMonthDropdown, labelYearDropdown, labels, labelNextYear, labelPrev
4
4
  export { INPUT_DATE_STRING_FORMAT_DATE, INPUT_DATE_STRING_FORMAT_MONTH, parseDate, } from "./parse-date";
5
5
  export { getLocaleFromString } from "./locale";
6
6
  export { disableDate } from "./dates-disabled";
7
- export { dateIsInCurrentMonth, isValidDate, hasNextYear } from "./check-dates";
7
+ export { dateIsInCurrentMonth, isValidDate } from "./check-dates";
8
8
  export { getInitialYear } from "./get-initial-year";
9
9
  export { isMatch, isDateInRange } from "./is-match";
10
10
  export { nextEnabled } from "./navigation";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,MAAM,EACN,aAAa,EACb,aAAa,GACd,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,6BAA6B,EAC7B,8BAA8B,EAC9B,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAgB,MAAM,YAAY,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "2.8.12",
3
+ "version": "2.8.14",
4
4
  "description": "Aksel react-components for NAV designsystem",
5
5
  "author": "Aksel | NAV designsystem team",
6
6
  "license": "MIT",
@@ -37,8 +37,8 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@floating-ui/react": "0.17.0",
40
- "@navikt/aksel-icons": "^2.8.12",
41
- "@navikt/ds-icons": "^2.8.12",
40
+ "@navikt/aksel-icons": "^2.8.14",
41
+ "@navikt/ds-icons": "^2.8.14",
42
42
  "@radix-ui/react-tabs": "1.0.0",
43
43
  "@radix-ui/react-toggle-group": "1.0.0",
44
44
  "clsx": "^1.2.1",
@@ -7,6 +7,7 @@ import { CaptionProps, useDayPicker, useNavigation } from "react-day-picker";
7
7
  import { Button, Select } from "../../..";
8
8
  import { getMonths, getYears } from "../../utils/get-dates";
9
9
  import { labelMonthDropdown, labelYearDropdown } from "../../utils/labels";
10
+ import { max, min } from "date-fns";
10
11
 
11
12
  export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
12
13
  const { goToMonth, nextMonth, previousMonth } = useNavigation();
@@ -23,13 +24,18 @@ export const DropdownCaption = ({ displayMonth, id }: CaptionProps) => {
23
24
  return null;
24
25
  }
25
26
 
26
- const handleYearChange: React.ChangeEventHandler<HTMLSelectElement> = (e) =>
27
- goToMonth(setYear(startOfMonth(displayMonth), Number(e.target.value)));
27
+ const handleYearChange: React.ChangeEventHandler<HTMLSelectElement> = (e) => {
28
+ const newMonth = setYear(
29
+ startOfMonth(displayMonth),
30
+ Number(e.target.value)
31
+ );
32
+ goToMonth(startOfMonth(min([max([newMonth, fromDate]), toDate])));
33
+ };
28
34
 
29
35
  const handleMonthChange: React.ChangeEventHandler<HTMLSelectElement> = (e) =>
30
36
  goToMonth(setMonth(startOfMonth(displayMonth), Number(e.target.value)));
31
37
 
32
- const years = getYears(fromDate, toDate);
38
+ const years = getYears(fromDate, toDate, displayMonth.getFullYear());
33
39
  const months = getMonths(fromDate, toDate, displayMonth);
34
40
 
35
41
  const previousLabel = labelPrevious(previousMonth, { locale });
@@ -149,14 +149,13 @@ export const ShowWeekNumber = () => (
149
149
  export const UseDatepicker = () => {
150
150
  const { datepickerProps, inputProps } = UNSAFE_useDatepicker({
151
151
  fromDate: new Date("Aug 23 2019"),
152
+ toDate: new Date("Feb 23 2023"),
152
153
  onDateChange: console.log,
153
- locale: "en",
154
- openOnFocus: false,
155
154
  });
156
155
 
157
156
  return (
158
157
  <div style={{ display: "flex", gap: "1rem" }}>
159
- <DatePicker {...datepickerProps}>
158
+ <DatePicker {...datepickerProps} dropdownCaption>
160
159
  <DatePicker.Input {...inputProps} label="Velg dato" />
161
160
  </DatePicker>
162
161
  </div>
@@ -1,6 +1,6 @@
1
1
  import differenceInCalendarDays from "date-fns/differenceInCalendarDays";
2
2
  import isWeekend from "date-fns/isWeekend";
3
- import React, { useRef, useState } from "react";
3
+ import React, { useCallback, useRef, useState } from "react";
4
4
  import { DayClickEventHandler, isMatch } from "react-day-picker";
5
5
  import { DateInputProps } from "../DateInput";
6
6
  import { DatePickerProps } from "../datepicker/DatePicker";
@@ -150,13 +150,22 @@ export const useDatepicker = (
150
150
  : "";
151
151
  const [inputValue, setInputValue] = useState(defaultInputValue);
152
152
 
153
- useOutsideClickHandler(open, setOpen, [
153
+ const handleOpen = useCallback(
154
+ (open: boolean) => {
155
+ setOpen(open);
156
+ !open &&
157
+ setMonth(selectedDay ?? defaultSelected ?? defaultMonth ?? today);
158
+ },
159
+ [defaultMonth, defaultSelected, selectedDay, today]
160
+ );
161
+
162
+ useOutsideClickHandler(open, handleOpen, [
154
163
  daypickerRef,
155
164
  inputRef.current,
156
165
  inputRef.current?.nextSibling,
157
166
  ]);
158
167
 
159
- useEscape(open, setOpen, inputRef);
168
+ useEscape(open, handleOpen, inputRef);
160
169
 
161
170
  const updateDate = (date?: Date) => {
162
171
  onDateChange?.(date);
@@ -182,7 +191,7 @@ export const useDatepicker = (
182
191
  };
183
192
 
184
193
  const handleFocus: React.FocusEventHandler<HTMLInputElement> = (e) => {
185
- !open && openOnFocus && setOpen(true);
194
+ !open && openOnFocus && handleOpen(true);
186
195
  let day = parseDate(
187
196
  e.target.value,
188
197
  today,
@@ -211,7 +220,7 @@ export const useDatepicker = (
211
220
  /* Only allow de-selecting if not required */
212
221
  const handleDayClick: DayClickEventHandler = (day, { selected }) => {
213
222
  if (day && !selected) {
214
- setOpen(false);
223
+ handleOpen(false);
215
224
  inputRef.current && inputRef.current.focus();
216
225
  }
217
226
 
@@ -288,7 +297,7 @@ export const useDatepicker = (
288
297
  toDate,
289
298
  today,
290
299
  open,
291
- onOpenToggle: () => setOpen((x) => !x),
300
+ onOpenToggle: () => handleOpen(!open),
292
301
  disabled,
293
302
  disableWeekends,
294
303
  ref: setDaypickerRef,
@@ -1,8 +1,8 @@
1
- import React, { useCallback, useEffect } from "react";
1
+ import { useCallback, useEffect } from "react";
2
2
 
3
3
  export const useEscape = (
4
4
  open: boolean,
5
- setOpen: React.Dispatch<React.SetStateAction<boolean>>,
5
+ setOpen: (openState: boolean) => void,
6
6
  focusRef: any
7
7
  ) => {
8
8
  const handleClose = useCallback(() => {
@@ -1,4 +1,4 @@
1
- import React, { useRef, useState } from "react";
1
+ import React, { useCallback, useMemo, useRef, useState } from "react";
2
2
  import { DateInputProps } from "../DateInput";
3
3
  import { MonthPickerProps } from "../monthpicker/MonthPicker";
4
4
  import {
@@ -116,7 +116,7 @@ export const useMonthpicker = (
116
116
 
117
117
  const [defaultSelected, setDefaultSelected] = useState(_defaultSelected);
118
118
 
119
- const today = new Date();
119
+ const today = useMemo(() => new Date(), []);
120
120
  const locale = getLocaleFromString(_locale);
121
121
 
122
122
  const inputRef = useRef<HTMLInputElement>(null);
@@ -133,13 +133,22 @@ export const useMonthpicker = (
133
133
 
134
134
  const [inputValue, setInputValue] = useState(defaultInputValue);
135
135
 
136
- useOutsideClickHandler(open, setOpen, [
136
+ const handleOpen = useCallback(
137
+ (open: boolean) => {
138
+ setOpen(open);
139
+ !open &&
140
+ setYear(selectedMonth ?? defaultSelected ?? defaultYear ?? today);
141
+ },
142
+ [defaultSelected, defaultYear, selectedMonth, today]
143
+ );
144
+
145
+ useOutsideClickHandler(open, handleOpen, [
137
146
  monthpickerRef,
138
147
  inputRef.current,
139
148
  inputRef.current?.nextSibling,
140
149
  ]);
141
150
 
142
- useEscape(open, setOpen, inputRef);
151
+ useEscape(open, handleOpen, inputRef);
143
152
 
144
153
  const updateMonth = (date?: Date) => {
145
154
  onMonthChange?.(date);
@@ -165,7 +174,7 @@ export const useMonthpicker = (
165
174
  };
166
175
 
167
176
  const handleFocus: React.FocusEventHandler<HTMLInputElement> = (e) => {
168
- !open && openOnFocus && setOpen(true);
177
+ !open && openOnFocus && handleOpen(true);
169
178
  let day = parseDate(
170
179
  e.target.value,
171
180
  today,
@@ -196,7 +205,7 @@ export const useMonthpicker = (
196
205
  /* Only allow de-selecting if not required */
197
206
  const handleMonthClick = (month?: Date) => {
198
207
  if (month) {
199
- setOpen(false);
208
+ handleOpen(false);
200
209
  inputRef.current && inputRef.current.focus();
201
210
  setYear(month);
202
211
  }
@@ -282,7 +291,7 @@ export const useMonthpicker = (
282
291
  fromDate,
283
292
  toDate,
284
293
  open,
285
- onOpenToggle: () => setOpen((x) => !x),
294
+ onOpenToggle: () => handleOpen(!open),
286
295
  disabled,
287
296
  ref: setMonthpickerRef,
288
297
  };
@@ -1,8 +1,8 @@
1
- import React, { useCallback, useEffect } from "react";
1
+ import { useCallback, useEffect } from "react";
2
2
 
3
3
  export const useOutsideClickHandler = (
4
4
  open: boolean,
5
- setOpen: React.Dispatch<React.SetStateAction<boolean>>,
5
+ setOpen: (openState: boolean) => void,
6
6
  refs: Array<any>
7
7
  ) => {
8
8
  const handleFocusIn = useCallback(
@@ -1,5 +1,4 @@
1
1
  import { Left, Right } from "@navikt/ds-icons";
2
- import isSameYear from "date-fns/isSameYear";
3
2
  import setYear from "date-fns/setYear";
4
3
  import startOfMonth from "date-fns/startOfMonth";
5
4
  import startOfYear from "date-fns/startOfYear";
@@ -7,7 +6,8 @@ import React from "react";
7
6
  import { useDayPicker } from "react-day-picker";
8
7
  import { Button, Select } from "../..";
9
8
  import { useSharedMonthContext } from "../context";
10
- import { hasNextYear, labelNextYear, labelPrevYear } from "../utils";
9
+ import { labelNextYear, labelPrevYear } from "../utils";
10
+ import { isAfter, isBefore } from "date-fns";
11
11
 
12
12
  export const MonthCaption = () => {
13
13
  const {
@@ -27,34 +27,38 @@ export const MonthCaption = () => {
27
27
  for (let year = fromYear; year <= toYear; year++) {
28
28
  years.push(setYear(startOfYear(new Date()), year));
29
29
  }
30
+
31
+ if (!years.map((x) => x.getFullYear()).includes(year.getFullYear())) {
32
+ years.push(setYear(startOfYear(new Date()), year.getFullYear()));
33
+ }
34
+ years.sort((a, b) => a.getFullYear() - b.getFullYear());
30
35
  }
31
36
 
32
37
  const handleYearChange = (e) =>
33
38
  toYear(setYear(startOfMonth(new Date()), Number(e.target.value)));
34
39
 
35
40
  const handleButtonClick = (val: number) => {
36
- let newMonth: Date;
37
- if (hasDropdown && hasNextYear(year, years, val)) {
38
- newMonth = setYear(new Date(), year.getFullYear() + val);
39
- toYear(newMonth);
40
- } else if (!hasDropdown) {
41
- const newYear = Number(year.getFullYear() + val);
42
- newMonth = setYear(year, newYear);
43
- toYear(newMonth);
44
- }
41
+ const newYear = Number(year.getFullYear() + val);
42
+ toYear(setYear(year, newYear));
43
+ };
44
+
45
+ const hasPrevYear = () => {
46
+ return fromDate
47
+ ? isBefore(year?.getFullYear() - 1, fromDate?.getFullYear())
48
+ : true;
45
49
  };
46
50
 
47
- const hasFollowingYear = (value: number) => {
48
- return years.some((y) =>
49
- isSameYear(y, setYear(year, Number(year.getFullYear() + value)))
50
- );
51
+ const hasNextYear = () => {
52
+ return toDate
53
+ ? isAfter(year?.getFullYear() + 1, toDate?.getFullYear())
54
+ : true;
51
55
  };
52
56
 
53
57
  return (
54
58
  <div className="navds-date__caption">
55
59
  <Button
56
60
  className="navds-date__caption-button"
57
- disabled={!hasDropdown ? false : !hasFollowingYear(-1)}
61
+ disabled={hasPrevYear()}
58
62
  onClick={() => handleButtonClick(-1)}
59
63
  aria-label={labelPrevYear(locale?.code)}
60
64
  icon={<Left aria-hidden />}
@@ -83,7 +87,7 @@ export const MonthCaption = () => {
83
87
  )}
84
88
  <Button
85
89
  className="navds-date__caption-button"
86
- disabled={!hasDropdown ? false : !hasFollowingYear(1)}
90
+ disabled={hasNextYear()}
87
91
  onClick={() => handleButtonClick(1)}
88
92
  aria-label={labelNextYear(locale?.code)}
89
93
  icon={<Right aria-hidden />}
@@ -77,11 +77,13 @@ export const UseMonthpicker = () => {
77
77
  const { inputProps, monthpickerProps } = UNSAFE_useMonthpicker({
78
78
  disabled: [new Date("Apr 1 2022")],
79
79
  onMonthChange: console.log,
80
+ fromDate: new Date("Jan 1 2000"),
81
+ toDate: new Date("Sep 27 2005"),
80
82
  });
81
83
 
82
84
  return (
83
85
  <div style={{ height: "20rem" }}>
84
- <MonthPicker {...monthpickerProps}>
86
+ <MonthPicker {...monthpickerProps} dropdownCaption>
85
87
  <MonthPicker.Input
86
88
  {...inputProps}
87
89
  label="Velg måned"
@@ -1,4 +1,4 @@
1
- import { dateIsInCurrentMonth, hasNextYear } from "..";
1
+ import { dateIsInCurrentMonth } from "..";
2
2
 
3
3
  const selectedDate = new Date("Feb 1 1994");
4
4
 
@@ -19,29 +19,3 @@ describe("Returns if date is in current month", () => {
19
19
  ).toBeFalsy();
20
20
  });
21
21
  });
22
-
23
- const years = [
24
- new Date(),
25
- new Date("Aug 5 2023"),
26
- new Date("Aug 5 2024"),
27
- new Date("Aug 5 2025"),
28
- new Date("Aug 5 2026"),
29
- new Date("Aug 5 2027"),
30
- new Date("Aug 5 2028"),
31
- new Date("Aug 5 2029"),
32
- ];
33
-
34
- describe("Returns if year is at start or end of range", () => {
35
- test("Should have next year (true)", () => {
36
- expect(hasNextYear(new Date(), years, 1)).toBeTruthy();
37
- });
38
- test("Should have previous year (true)", () => {
39
- expect(hasNextYear(new Date("Aug 3 2024"), years, -1)).toBeTruthy();
40
- });
41
- test("Should not have next year (false)", () => {
42
- expect(hasNextYear(new Date("Aug 3 2029"), years, 1)).toBeFalsy();
43
- });
44
- test("Should not have previous year (false)", () => {
45
- expect(hasNextYear(new Date(), years, -1)).toBeFalsy();
46
- });
47
- });
@@ -57,6 +57,25 @@ describe("Extracts correct months", () => {
57
57
  };
58
58
  expect(getMonths(t.start, t.end, t.current).length).toEqual(t.res);
59
59
  });
60
+ test("End part of 2022, including starting month (12)", () => {
61
+ const t = {
62
+ start: new Date(2019, 5, 22),
63
+ end: new Date(2022, 7, 22),
64
+ current: new Date(2022, 7, 22),
65
+ res: 8,
66
+ };
67
+ expect(getMonths(t.start, t.end, t.current).length).toEqual(t.res);
68
+ });
69
+ test("Adds out of range month to list (13)", () => {
70
+ const t = {
71
+ start: new Date(2019, 5, 22),
72
+ end: new Date(2022, 7, 22),
73
+ current: new Date(2022, 9, 22),
74
+ res: 9,
75
+ };
76
+ console.log(getMonths(t.start, t.end, t.current));
77
+ expect(getMonths(t.start, t.end, t.current).length).toEqual(t.res);
78
+ });
60
79
  });
61
80
 
62
81
  describe("Extracts correct years", () => {
@@ -64,16 +83,39 @@ describe("Extracts correct years", () => {
64
83
  const t = {
65
84
  start: new Date(2019, 2, 22),
66
85
  end: new Date(2019, 9, 22),
86
+ current: 2019,
67
87
  res: 1,
68
88
  };
69
- expect(getYears(t.start, t.end).length).toEqual(t.res);
89
+ expect(getYears(t.start, t.end, t.current).length).toEqual(t.res);
70
90
  });
91
+
71
92
  test("Multiple years (11)", () => {
72
93
  const t = {
73
94
  start: new Date(2019, 2, 22),
74
95
  end: new Date(2029, 9, 22),
96
+ current: 2022,
75
97
  res: 11,
76
98
  };
77
- expect(getYears(t.start, t.end).length).toEqual(t.res);
99
+ expect(getYears(t.start, t.end, t.current).length).toEqual(t.res);
100
+ });
101
+
102
+ test("Displaymonth outside range: after (11)", () => {
103
+ const t = {
104
+ start: new Date(2019, 2, 22),
105
+ end: new Date(2029, 9, 22),
106
+ current: 2040,
107
+ res: 12,
108
+ };
109
+ expect(getYears(t.start, t.end, t.current).length).toEqual(t.res);
110
+ });
111
+
112
+ test("Displaymonth outside range: before (11)", () => {
113
+ const t = {
114
+ start: new Date(2019, 2, 22),
115
+ end: new Date(2029, 9, 22),
116
+ current: 2001,
117
+ res: 12,
118
+ };
119
+ expect(getYears(t.start, t.end, t.current).length).toEqual(t.res);
78
120
  });
79
121
  });
@@ -12,7 +12,3 @@ export const dateIsInCurrentMonth = (
12
12
  export function isValidDate(day: Date): boolean {
13
13
  return day && !isNaN(day?.getTime()) && day.getFullYear() > 999;
14
14
  }
15
-
16
- export const hasNextYear = (year: Date, years: Date[], val: any): boolean => {
17
- return years.some((x) => year.getFullYear() + val === x.getFullYear());
18
- };
@@ -28,15 +28,31 @@ export const getMonths = (start: Date, end: Date, current: Date): Date[] => {
28
28
  dropdownMonths.push(setMonth(date, month));
29
29
  }
30
30
  }
31
+
32
+ if (!dropdownMonths.map((d) => d.getMonth()).includes(current.getMonth())) {
33
+ dropdownMonths.push(current);
34
+ }
35
+ dropdownMonths.sort((a, b) => a.getMonth() - b.getMonth());
36
+
31
37
  return dropdownMonths;
32
38
  };
33
39
 
34
- export const getYears = (start: Date, end: Date): Date[] => {
40
+ export const getYears = (
41
+ start: Date,
42
+ end: Date,
43
+ currentYear: number
44
+ ): Date[] => {
35
45
  const years: Date[] = [];
36
46
  const fromYear = start.getFullYear();
37
47
  const toYear = end.getFullYear();
38
48
  for (let year = fromYear; year <= toYear; year++) {
39
49
  years.push(setYear(startOfYear(new Date()), year));
40
50
  }
51
+
52
+ if (fromYear > currentYear || toYear < currentYear) {
53
+ years.push(setYear(startOfYear(new Date()), currentYear));
54
+ }
55
+
56
+ years.sort((a, b) => a.getFullYear() - b.getFullYear());
41
57
  return years;
42
58
  };
@@ -15,7 +15,7 @@ export {
15
15
  export { getLocaleFromString } from "./locale";
16
16
  export { disableDate } from "./dates-disabled";
17
17
 
18
- export { dateIsInCurrentMonth, isValidDate, hasNextYear } from "./check-dates";
18
+ export { dateIsInCurrentMonth, isValidDate } from "./check-dates";
19
19
  export { getInitialYear } from "./get-initial-year";
20
20
  export { isMatch, isDateInRange, type Matcher } from "./is-match";
21
21
  export { nextEnabled } from "./navigation";