@trackunit/filters-filter-bar 1.5.3 → 1.5.4

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/index.cjs.js CHANGED
@@ -1863,7 +1863,11 @@ const getPersistenceKey = (name, clientSideUserId) => `filter-${name}-${clientSi
1863
1863
  */
1864
1864
  const useFilterBarPersistence = ({ name, setValue, loadData: inputLoadData, saveData: inputSaveData, }) => {
1865
1865
  const { clientSideUserId } = reactCoreHooks.useCurrentUser();
1866
- const [initialStoredFilters] = react.useState(() => (!inputLoadData && localStorage.getItem(getPersistenceKey(name, clientSideUserId))) || "{}");
1866
+ const getFromLocalStorage = react.useCallback((persistenceKey) => {
1867
+ return localStorage.getItem(getPersistenceKey(persistenceKey, clientSideUserId));
1868
+ }, [clientSideUserId]);
1869
+ const lastName = react.useRef(name);
1870
+ const [initialStoredFilters] = react.useState(() => (!inputLoadData && getFromLocalStorage(name)) || "{}");
1867
1871
  const [lastSavedState, setLastSavedState] = react.useState(undefined);
1868
1872
  const saveData = react.useCallback((filterBarConfig, filterBarDefinitions) => {
1869
1873
  const newValues = Object.assign({}, lastSavedState || {});
@@ -1895,7 +1899,14 @@ const useFilterBarPersistence = ({ name, setValue, loadData: inputLoadData, save
1895
1899
  return inputLoadData();
1896
1900
  }
1897
1901
  else {
1898
- const storedFilters = initialStoredFilters;
1902
+ let storedFilters = null;
1903
+ if (lastName.current !== name) {
1904
+ storedFilters = localStorage.getItem(getPersistenceKey(name, clientSideUserId)) || "{}";
1905
+ lastName.current = name;
1906
+ }
1907
+ else {
1908
+ storedFilters = initialStoredFilters;
1909
+ }
1899
1910
  if (storedFilters && storedFilters !== "undefined") {
1900
1911
  try {
1901
1912
  const loadedFilterBarConfigValues = JSON.parse(storedFilters);
@@ -1907,7 +1918,7 @@ const useFilterBarPersistence = ({ name, setValue, loadData: inputLoadData, save
1907
1918
  }
1908
1919
  return null;
1909
1920
  }
1910
- }, [inputLoadData, initialStoredFilters]);
1921
+ }, [inputLoadData, initialStoredFilters, clientSideUserId, name]);
1911
1922
  const loadData = react.useCallback((updatedFilterDefinitionsValues) => {
1912
1923
  const initialStateValues = createInitialState({
1913
1924
  name,
@@ -1982,6 +1993,7 @@ const useGenericSetValue = () => {
1982
1993
  * @returns {object} An object containing filter bar configuration and actions.
1983
1994
  */
1984
1995
  const useFilterBar = ({ name, onValuesChange, filterBarDefinition, loadData: inputLoadData, saveData: inputSaveData, }) => {
1996
+ const lastName = react.useRef(name);
1985
1997
  const { setValue } = useGenericSetValue();
1986
1998
  const { loadData, saveData } = useFilterBarPersistence({
1987
1999
  name,
@@ -1992,6 +2004,12 @@ const useFilterBar = ({ name, onValuesChange, filterBarDefinition, loadData: inp
1992
2004
  const [filterBarConfig, setFilterBarConfig] = react.useState(() => {
1993
2005
  return loadData(sharedUtils.objectValues(filterBarDefinition));
1994
2006
  });
2007
+ react.useEffect(() => {
2008
+ if (lastName.current !== name) {
2009
+ setFilterBarConfig(loadData(sharedUtils.objectValues(filterBarDefinition)));
2010
+ lastName.current = name;
2011
+ }
2012
+ }, [filterBarDefinition, loadData, name]);
1995
2013
  const { filterMapActions, filterMapGetter } = useFilterBarActions({
1996
2014
  name,
1997
2015
  filterBarConfig,
@@ -2049,8 +2067,9 @@ const useFilterBarAsync = ({ name, onValuesChange, filterBarDefinition, loadData
2049
2067
  setValue: (key, callback) => setValue(setFilterBarConfig, key, callback),
2050
2068
  });
2051
2069
  const dataLoaded = react.useCallback((loadedFilterDefinitionsValues) => {
2052
- setAsyncLoadedFilterBarDefinitions(() => loadedFilterDefinitionsValues);
2053
- setFilterBarConfig(_ => loadData(sharedUtils.objectValues(loadedFilterDefinitionsValues)));
2070
+ setIsDataLoaded(false);
2071
+ setAsyncLoadedFilterBarDefinitions(loadedFilterDefinitionsValues);
2072
+ setFilterBarConfig(loadData(sharedUtils.objectValues(loadedFilterDefinitionsValues)));
2054
2073
  setIsDataLoaded(true);
2055
2074
  }, [loadData]);
2056
2075
  const filterBarConfigMemoed = react.useMemo(() => {
package/index.esm.js CHANGED
@@ -1861,7 +1861,11 @@ const getPersistenceKey = (name, clientSideUserId) => `filter-${name}-${clientSi
1861
1861
  */
1862
1862
  const useFilterBarPersistence = ({ name, setValue, loadData: inputLoadData, saveData: inputSaveData, }) => {
1863
1863
  const { clientSideUserId } = useCurrentUser();
1864
- const [initialStoredFilters] = useState(() => (!inputLoadData && localStorage.getItem(getPersistenceKey(name, clientSideUserId))) || "{}");
1864
+ const getFromLocalStorage = useCallback((persistenceKey) => {
1865
+ return localStorage.getItem(getPersistenceKey(persistenceKey, clientSideUserId));
1866
+ }, [clientSideUserId]);
1867
+ const lastName = useRef(name);
1868
+ const [initialStoredFilters] = useState(() => (!inputLoadData && getFromLocalStorage(name)) || "{}");
1865
1869
  const [lastSavedState, setLastSavedState] = useState(undefined);
1866
1870
  const saveData = useCallback((filterBarConfig, filterBarDefinitions) => {
1867
1871
  const newValues = Object.assign({}, lastSavedState || {});
@@ -1893,7 +1897,14 @@ const useFilterBarPersistence = ({ name, setValue, loadData: inputLoadData, save
1893
1897
  return inputLoadData();
1894
1898
  }
1895
1899
  else {
1896
- const storedFilters = initialStoredFilters;
1900
+ let storedFilters = null;
1901
+ if (lastName.current !== name) {
1902
+ storedFilters = localStorage.getItem(getPersistenceKey(name, clientSideUserId)) || "{}";
1903
+ lastName.current = name;
1904
+ }
1905
+ else {
1906
+ storedFilters = initialStoredFilters;
1907
+ }
1897
1908
  if (storedFilters && storedFilters !== "undefined") {
1898
1909
  try {
1899
1910
  const loadedFilterBarConfigValues = JSON.parse(storedFilters);
@@ -1905,7 +1916,7 @@ const useFilterBarPersistence = ({ name, setValue, loadData: inputLoadData, save
1905
1916
  }
1906
1917
  return null;
1907
1918
  }
1908
- }, [inputLoadData, initialStoredFilters]);
1919
+ }, [inputLoadData, initialStoredFilters, clientSideUserId, name]);
1909
1920
  const loadData = useCallback((updatedFilterDefinitionsValues) => {
1910
1921
  const initialStateValues = createInitialState({
1911
1922
  name,
@@ -1980,6 +1991,7 @@ const useGenericSetValue = () => {
1980
1991
  * @returns {object} An object containing filter bar configuration and actions.
1981
1992
  */
1982
1993
  const useFilterBar = ({ name, onValuesChange, filterBarDefinition, loadData: inputLoadData, saveData: inputSaveData, }) => {
1994
+ const lastName = useRef(name);
1983
1995
  const { setValue } = useGenericSetValue();
1984
1996
  const { loadData, saveData } = useFilterBarPersistence({
1985
1997
  name,
@@ -1990,6 +2002,12 @@ const useFilterBar = ({ name, onValuesChange, filterBarDefinition, loadData: inp
1990
2002
  const [filterBarConfig, setFilterBarConfig] = useState(() => {
1991
2003
  return loadData(objectValues(filterBarDefinition));
1992
2004
  });
2005
+ useEffect(() => {
2006
+ if (lastName.current !== name) {
2007
+ setFilterBarConfig(loadData(objectValues(filterBarDefinition)));
2008
+ lastName.current = name;
2009
+ }
2010
+ }, [filterBarDefinition, loadData, name]);
1993
2011
  const { filterMapActions, filterMapGetter } = useFilterBarActions({
1994
2012
  name,
1995
2013
  filterBarConfig,
@@ -2047,8 +2065,9 @@ const useFilterBarAsync = ({ name, onValuesChange, filterBarDefinition, loadData
2047
2065
  setValue: (key, callback) => setValue(setFilterBarConfig, key, callback),
2048
2066
  });
2049
2067
  const dataLoaded = useCallback((loadedFilterDefinitionsValues) => {
2050
- setAsyncLoadedFilterBarDefinitions(() => loadedFilterDefinitionsValues);
2051
- setFilterBarConfig(_ => loadData(objectValues(loadedFilterDefinitionsValues)));
2068
+ setIsDataLoaded(false);
2069
+ setAsyncLoadedFilterBarDefinitions(loadedFilterDefinitionsValues);
2070
+ setFilterBarConfig(loadData(objectValues(loadedFilterDefinitionsValues)));
2052
2071
  setIsDataLoaded(true);
2053
2072
  }, [loadData]);
2054
2073
  const filterBarConfigMemoed = useMemo(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trackunit/filters-filter-bar",
3
- "version": "1.5.3",
3
+ "version": "1.5.4",
4
4
  "repository": "https://github.com/Trackunit/manager",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "engines": {
@@ -15,16 +15,16 @@
15
15
  "string-ts": "^2.0.0",
16
16
  "zod": "3.23.4",
17
17
  "@trackunit/iris-app-api": "1.4.1",
18
- "@trackunit/react-core-hooks": "1.4.1",
19
- "@trackunit/react-filter-components": "1.4.3",
20
- "@trackunit/react-date-and-time-components": "1.5.3",
18
+ "@trackunit/react-core-hooks": "1.4.2",
19
+ "@trackunit/react-filter-components": "1.4.4",
20
+ "@trackunit/react-date-and-time-components": "1.5.4",
21
21
  "@trackunit/shared-utils": "1.6.1",
22
- "@trackunit/react-form-components": "1.4.2",
23
- "@trackunit/react-core-contexts-api": "1.5.1",
22
+ "@trackunit/react-form-components": "1.4.3",
23
+ "@trackunit/react-core-contexts-api": "1.5.2",
24
24
  "@trackunit/geo-json-utils": "1.4.1",
25
- "@trackunit/i18n-library-translation": "1.4.1",
25
+ "@trackunit/i18n-library-translation": "1.4.2",
26
26
  "@trackunit/css-class-variance-utilities": "1.4.1",
27
- "@trackunit/react-components": "1.5.2",
27
+ "@trackunit/react-components": "1.5.3",
28
28
  "@trackunit/react-test-setup": "1.1.1"
29
29
  },
30
30
  "module": "./index.esm.js",