@mui/x-date-pickers 6.18.5 → 6.18.7

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/AdapterLuxon/AdapterLuxon.d.ts +32 -32
  2. package/CHANGELOG.md +91 -0
  3. package/DateCalendar/DateCalendar.js +6 -4
  4. package/DateCalendar/DateCalendar.types.d.ts +0 -8
  5. package/DigitalClock/DigitalClock.js +3 -2
  6. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  7. package/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -12
  8. package/TimeClock/TimeClock.js +3 -2
  9. package/index.js +1 -1
  10. package/internals/hooks/useField/useField.js +8 -1
  11. package/internals/hooks/useViews.d.ts +4 -4
  12. package/internals/hooks/useViews.js +13 -13
  13. package/internals/models/props/clock.d.ts +0 -9
  14. package/legacy/DateCalendar/DateCalendar.js +6 -4
  15. package/legacy/DigitalClock/DigitalClock.js +3 -2
  16. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  17. package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -12
  18. package/legacy/TimeClock/TimeClock.js +3 -2
  19. package/legacy/index.js +1 -1
  20. package/legacy/internals/hooks/useField/useField.js +8 -1
  21. package/legacy/internals/hooks/useViews.js +13 -13
  22. package/legacy/locales/ruRU.js +1 -2
  23. package/locales/ruRU.js +1 -2
  24. package/modern/DateCalendar/DateCalendar.js +6 -4
  25. package/modern/DigitalClock/DigitalClock.js +3 -2
  26. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  27. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -12
  28. package/modern/TimeClock/TimeClock.js +3 -2
  29. package/modern/index.js +1 -1
  30. package/modern/internals/hooks/useField/useField.js +8 -1
  31. package/modern/internals/hooks/useViews.js +13 -13
  32. package/modern/locales/ruRU.js +1 -2
  33. package/node/DateCalendar/DateCalendar.js +6 -4
  34. package/node/DigitalClock/DigitalClock.js +3 -2
  35. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +9 -13
  36. package/node/MultiSectionDigitalClock/MultiSectionDigitalClockSection.js +8 -12
  37. package/node/TimeClock/TimeClock.js +3 -2
  38. package/node/index.js +1 -1
  39. package/node/internals/hooks/useField/useField.js +8 -1
  40. package/node/internals/hooks/useViews.js +13 -13
  41. package/node/locales/ruRU.js +1 -2
  42. package/package.json +1 -1
@@ -73,11 +73,12 @@ function useViews({
73
73
  onFocusedViewChange?.(viewToFocus, hasFocus);
74
74
  });
75
75
  const handleChangeView = (0, _useEventCallback.default)(newView => {
76
+ // always keep the focused view in sync
77
+ handleFocusedViewChange(newView, true);
76
78
  if (newView === view) {
77
79
  return;
78
80
  }
79
81
  setView(newView);
80
- handleFocusedViewChange(newView, true);
81
82
  if (onViewChange) {
82
83
  onViewChange(newView);
83
84
  }
@@ -86,7 +87,6 @@ function useViews({
86
87
  if (nextView) {
87
88
  handleChangeView(nextView);
88
89
  }
89
- handleFocusedViewChange(nextView, true);
90
90
  });
91
91
  const setValueAndGoToNextView = (0, _useEventCallback.default)((value, currentViewSelectionState, selectedView) => {
92
92
  const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';
@@ -95,18 +95,19 @@ function useViews({
95
95
  // but we it's not the final view given all `views` -> overall selection state should be `partial`.
96
96
  views.indexOf(selectedView) < views.length - 1 : Boolean(nextView);
97
97
  const globalSelectionState = isSelectionFinishedOnCurrentView && hasMoreViews ? 'partial' : currentViewSelectionState;
98
- onChange(value, globalSelectionState);
99
- if (isSelectionFinishedOnCurrentView) {
98
+ onChange(value, globalSelectionState, selectedView);
99
+ // Detects if the selected view is not the active one.
100
+ // Can happen if multiple views are displayed, like in `DesktopDateTimePicker` or `MultiSectionDigitalClock`.
101
+ if (selectedView && selectedView !== view) {
102
+ const nextViewAfterSelected = views[views.indexOf(selectedView) + 1];
103
+ if (nextViewAfterSelected) {
104
+ // move to next view after the selected one
105
+ handleChangeView(nextViewAfterSelected);
106
+ }
107
+ } else if (isSelectionFinishedOnCurrentView) {
100
108
  goToNextView();
101
109
  }
102
110
  });
103
- const setValueAndGoToView = (0, _useEventCallback.default)((value, newView, selectedView) => {
104
- onChange(value, newView ? 'partial' : 'finish', selectedView);
105
- if (newView) {
106
- handleChangeView(newView);
107
- handleFocusedViewChange(newView, true);
108
- }
109
- });
110
111
  return {
111
112
  view,
112
113
  setView: handleChangeView,
@@ -117,7 +118,6 @@ function useViews({
117
118
  // Always return up to date default view instead of the initial one (i.e. defaultView.current)
118
119
  defaultView: views.includes(openTo) ? openTo : views[0],
119
120
  goToNextView,
120
- setValueAndGoToNextView,
121
- setValueAndGoToView
121
+ setValueAndGoToNextView
122
122
  };
123
123
  }
@@ -48,8 +48,7 @@ const ruRUPickers = {
48
48
  // Open picker labels
49
49
  openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Выберите дату, выбрана дата ${utils.format(value, 'fullDate')}` : 'Выберите дату',
50
50
  openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Выберите время, выбрано время ${utils.format(value, 'fullTime')}` : 'Выберите время',
51
- // fieldClearLabel: 'Clear value',
52
-
51
+ fieldClearLabel: 'Очистить значение',
53
52
  // Table labels
54
53
  timeTableLabel: 'выбрать время',
55
54
  dateTableLabel: 'выбрать дату',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-date-pickers",
3
- "version": "6.18.5",
3
+ "version": "6.18.7",
4
4
  "description": "The community edition of the date picker components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",