trotl-filter 1.0.42 → 1.0.43

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/dist/index.cjs.js CHANGED
@@ -9242,23 +9242,32 @@ function DateTimeInput({
9242
9242
  return new Date(d.getFullYear(), d.getMonth(), 1, 0, 0, 0, 0);
9243
9243
  });
9244
9244
  // Keep monthCursor in sync when selected date changes externally
9245
+ // Guard updates so changing references (e.g. PREDEFINED array identity) doesn't force state
9245
9246
  React.useEffect(() => {
9246
9247
  if (selectedDate) {
9247
- setMonthCursor(new Date(selectedDate.getFullYear(), selectedDate.getMonth(), 1));
9248
- }
9249
- // Match predefined
9250
- if (selectedDate) {
9248
+ const newMonth = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), 1);
9249
+ // only update monthCursor when month/year actually differ
9250
+ setMonthCursor(prev => {
9251
+ if (!prev || prev.getFullYear() !== newMonth.getFullYear() || prev.getMonth() !== newMonth.getMonth()) {
9252
+ return newMonth;
9253
+ }
9254
+ return prev;
9255
+ });
9256
+
9257
+ // Match predefined: set only when value actually changes
9251
9258
  const ts = selectedDate.getTime();
9259
+ let matched = false;
9252
9260
  for (let i = 0; i < PREDEFINED.length; i++) {
9253
9261
  const d = PREDEFINED[i].getDate();
9254
9262
  if (d.getTime() === ts) {
9255
- setSelectedPredefined(String(i));
9256
- return;
9263
+ setSelectedPredefined(prev => prev !== String(i) ? String(i) : prev);
9264
+ matched = true;
9265
+ break;
9257
9266
  }
9258
9267
  }
9259
- setSelectedPredefined("");
9268
+ if (!matched) setSelectedPredefined(prev => prev !== "" ? "" : prev);
9260
9269
  } else {
9261
- setSelectedPredefined("");
9270
+ setSelectedPredefined(prev => prev !== "" ? "" : prev);
9262
9271
  }
9263
9272
  }, [value, selectedDate, PREDEFINED]);
9264
9273