react-better-html 1.1.174 → 1.1.176

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.mjs CHANGED
@@ -5804,6 +5804,9 @@ var DropdownComponent = forwardRef10(function Dropdown({
5804
5804
  ] }),
5805
5805
  [filteredOptions, value, focusedOptionIndex, theme2.colors, onClickOption, renderOption, renderOptionDivider]
5806
5806
  );
5807
+ useEffect6(() => {
5808
+ setInternalValue(controlledValue);
5809
+ }, [controlledValue]);
5807
5810
  useEffect6(() => {
5808
5811
  if (isOpen) {
5809
5812
  setIsOpenLate.setTrue();
@@ -5839,7 +5842,7 @@ var DropdownComponent = forwardRef10(function Dropdown({
5839
5842
  }, [withDebounce, onChangeSearch, debouncedSearchQuery]);
5840
5843
  const displayValue = withSearch && isFocused ? searchQuery : selectedOption?.label ?? "";
5841
5844
  const withClearButton = isOpen && selectedOption;
5842
- const readyPlaceholder = placeholder ? placeholder : `Select an ${label?.toLowerCase() ?? "option"}`;
5845
+ const readyPlaceholder = placeholder ?? `Select an ${label?.toLowerCase() ?? "option"}`;
5843
5846
  return /* @__PURE__ */ jsx15(Div_default.column, { width: "100%", position: "relative", userSelect: "none", ...props, children: /* @__PURE__ */ jsxs11(Div_default.row, { position: "relative", width: "100%", children: [
5844
5847
  /* @__PURE__ */ jsx15(
5845
5848
  InputField_default,
@@ -6124,6 +6127,7 @@ function Calendar({ value, minDate, maxDate, onChange }) {
6124
6127
  days.map((day, index) => {
6125
6128
  const thisDayDate = new Date(currentYear, currentMonth, day);
6126
6129
  const isSelected = day !== void 0 && day === currentDate?.getDate() && currentMonth === currentDate.getMonth() && currentYear === currentDate.getFullYear();
6130
+ const isToday = thisDayDate.getDate() === (/* @__PURE__ */ new Date()).getDate() && thisDayDate.getMonth() === (/* @__PURE__ */ new Date()).getMonth() && thisDayDate.getFullYear() === (/* @__PURE__ */ new Date()).getFullYear();
6127
6131
  const isWeekend = thisDayDate.getDay() === 6 || thisDayDate.getDay() === 0;
6128
6132
  const isDisabled = minDate && thisDayDate.getTime() < minDate.getTime() || maxDate && thisDayDate.getTime() > maxDate.getTime();
6129
6133
  return /* @__PURE__ */ jsxs12(
@@ -6135,7 +6139,8 @@ function Calendar({ value, minDate, maxDate, onChange }) {
6135
6139
  alignItems: "center",
6136
6140
  justifyContent: "center",
6137
6141
  backgroundColor: isSelected ? theme2.colors.primary : theme2.colors.backgroundContent,
6138
- filterHover: !isDisabled ? "brightness(0.9)" : void 0,
6142
+ filterHover: day && !isDisabled ? "brightness(0.9)" : void 0,
6143
+ border: `1px solid ${isToday ? theme2.colors.primary : theme2.colors.primary + "00"}`,
6139
6144
  borderRadius: theme2.styles.borderRadius / 2,
6140
6145
  padding: theme2.styles.space / 2,
6141
6146
  cursor: day ? !isDisabled ? "pointer" : "not-allowed" : void 0,
@@ -7806,6 +7811,7 @@ var filterPresetsText = {
7806
7811
  nextYear: "Next year"
7807
7812
  };
7808
7813
  var TableComponent = forwardRef15(function Table({
7814
+ name,
7809
7815
  columns,
7810
7816
  data,
7811
7817
  isStriped,
@@ -7817,6 +7823,8 @@ var TableComponent = forwardRef15(function Table({
7817
7823
  isInsideTableExpandRow,
7818
7824
  containsOverflowComponents,
7819
7825
  wrapperComponentRef,
7826
+ memoizeFilters,
7827
+ memoizeFiltersLifespan = 72e5,
7820
7828
  getRowStyle,
7821
7829
  onClickRow,
7822
7830
  onClickAllCheckboxes,
@@ -7834,7 +7842,15 @@ var TableComponent = forwardRef15(function Table({
7834
7842
  const [checkedItems, setCheckedItems] = useState9([]);
7835
7843
  const [expandedRows, setExpandedRows] = useState9([]);
7836
7844
  const [currentPage, setCurrentPage] = useState9(1);
7837
- const [filterData, setFilterData] = useState9({});
7845
+ const [filterData, setFilterData] = useState9(() => {
7846
+ if (!memoizeFilters || !name) return {};
7847
+ const localStorageData = JSON.parse(localStorage.getItem(`react-better-html-table-filters-${name}`) || "{}");
7848
+ const timestamp = localStorageData.timestamp;
7849
+ const data2 = localStorageData.data ?? {};
7850
+ const timeDiff = Date.now() - timestamp;
7851
+ if (timeDiff > memoizeFiltersLifespan) return {};
7852
+ return data2;
7853
+ });
7838
7854
  const [openedFilterColumnIndex, setOpenedFilterColumnIndex] = useState9();
7839
7855
  const [filterListSelectedItems, setFilterListSelectedItems] = useState9();
7840
7856
  const openedFilterData = openedFilterColumnIndex ? filterData[openedFilterColumnIndex] : void 0;
@@ -8089,6 +8105,10 @@ var TableComponent = forwardRef15(function Table({
8089
8105
  } else if (column.filter === "date" && filter.type === "date" || column.filter === "date-time" && filter.type === "date-time") {
8090
8106
  const minDate = filter.min ? new Date(filter.min) : void 0;
8091
8107
  const maxDate = filter.max ? new Date(filter.max) : void 0;
8108
+ if (column.filter === "date") {
8109
+ minDate?.setHours(0, 0, 0, 0);
8110
+ maxDate?.setHours(23, 59, 59, 999);
8111
+ }
8092
8112
  const itemValue = column.getValue?.(item) ?? new Date(column.type === "text" && column.keyName ? String(item[column.keyName]) : "");
8093
8113
  if (filter.min !== void 0 && minDate && itemValue < minDate) return false;
8094
8114
  if (filter.max !== void 0 && maxDate && itemValue > maxDate) return false;
@@ -8172,6 +8192,17 @@ var TableComponent = forwardRef15(function Table({
8172
8192
  useEffect10(() => {
8173
8193
  onChangeFilter?.(filterData);
8174
8194
  }, [onChangeFilter, filterData]);
8195
+ useEffect10(() => {
8196
+ if (!memoizeFilters) return;
8197
+ if (!name) return;
8198
+ localStorage.setItem(
8199
+ `react-better-html-table-filters-${name}`,
8200
+ JSON.stringify({
8201
+ timestamp: Date.now(),
8202
+ data: filterData
8203
+ })
8204
+ );
8205
+ }, [memoizeFilters, name, filterData]);
8175
8206
  useEffect10(() => {
8176
8207
  onChangeFilterDataValue?.(dataAfterFilter);
8177
8208
  }, [onChangeFilterDataValue, dataAfterFilter]);