@bigbinary/neeto-commons-frontend 3.0.13 → 3.0.16

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.
@@ -8,6 +8,7 @@ exports["default"] = void 0;
8
8
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
9
  var _react = require("react");
10
10
  var _ramda = require("ramda");
11
+ var _utils = require("../../utils");
11
12
  /* eslint-disable @bigbinary/neeto/no-local-storage */
12
13
 
13
14
  var getStorageValue = function getStorageValue(key, defaultValue) {
@@ -27,12 +28,15 @@ var useLocalStorage = function useLocalStorage(key, defaultValue) {
27
28
  storedValue = _useState2[0],
28
29
  setStoredValue = _useState2[1];
29
30
  var setValue = function setValue(value) {
30
- if ((0, _ramda.isNil)(value)) {
31
- localStorage.removeItem(key);
32
- } else {
33
- localStorage.setItem(key, JSON.stringify(value));
34
- }
35
- setStoredValue(value);
31
+ return setStoredValue(function (prevStoredValue) {
32
+ var newValue = typeof value === "function" ? value(prevStoredValue) : value;
33
+ if ((0, _ramda.isNil)(newValue)) {
34
+ (0, _utils.removeFromLocalStorage)(key);
35
+ } else {
36
+ (0, _utils.setToLocalStorage)(key, newValue);
37
+ }
38
+ return newValue;
39
+ });
36
40
  };
37
41
  return [storedValue, setValue];
38
42
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalStorage.js","names":["_react","require","_ramda","getStorageValue","key","defaultValue","storedValue","localStorage","getItem","JSON","parse","error","logger","useLocalStorage","_useState","useState","_useState2","_slicedToArray2","setStoredValue","setValue","value","isNil","removeItem","setItem","stringify","_default","exports"],"sources":["../../../../src/react-utils/useLocalStorage/useLocalStorage.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-local-storage */\n\nimport { useState } from \"react\";\n\nimport { isNil } from \"ramda\";\n\nconst getStorageValue = (key, defaultValue) => {\n try {\n const storedValue = localStorage.getItem(key);\n\n return storedValue ? JSON.parse(storedValue) : defaultValue;\n } catch (error) {\n logger.error(error);\n\n return defaultValue;\n }\n};\n\nconst useLocalStorage = (key, defaultValue) => {\n const [storedValue, setStoredValue] = useState(() =>\n getStorageValue(key, defaultValue)\n );\n\n const setValue = value => {\n if (isNil(value)) {\n localStorage.removeItem(key);\n } else {\n localStorage.setItem(key, JSON.stringify(value));\n }\n setStoredValue(value);\n };\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"mappings":";;;;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAJA;;AAMA,IAAME,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAI;IACF,IAAMC,WAAW,GAAGC,YAAY,CAACC,OAAO,CAACJ,GAAG,CAAC;IAE7C,OAAOE,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC,GAAGD,YAAY;EAC7D,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdC,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IAEnB,OAAON,YAAY;EACrB;AACF,CAAC;AAED,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAIT,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAAS,SAAA,GAAsC,IAAAC,eAAQ,EAAC;MAAA,OAC7CZ,eAAe,CAACC,GAAG,EAAEC,YAAY,CAAC;IAAA,EACnC;IAAAW,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAFMR,WAAW,GAAAU,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAIlC,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK,EAAI;IACxB,IAAI,IAAAC,YAAK,EAACD,KAAK,CAAC,EAAE;MAChBb,YAAY,CAACe,UAAU,CAAClB,GAAG,CAAC;IAC9B,CAAC,MAAM;MACLG,YAAY,CAACgB,OAAO,CAACnB,GAAG,EAAEK,IAAI,CAACe,SAAS,CAACJ,KAAK,CAAC,CAAC;IAClD;IACAF,cAAc,CAACE,KAAK,CAAC;EACvB,CAAC;EAED,OAAO,CAACd,WAAW,EAAEa,QAAQ,CAAC;AAChC,CAAC;AAAC,IAAAM,QAAA,GAEaZ,eAAe;AAAAa,OAAA,cAAAD,QAAA"}
1
+ {"version":3,"file":"useLocalStorage.js","names":["_react","require","_ramda","_utils","getStorageValue","key","defaultValue","storedValue","localStorage","getItem","JSON","parse","error","logger","useLocalStorage","_useState","useState","_useState2","_slicedToArray2","setStoredValue","setValue","value","prevStoredValue","newValue","isNil","removeFromLocalStorage","setToLocalStorage","_default","exports"],"sources":["../../../../src/react-utils/useLocalStorage/useLocalStorage.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-local-storage */\n\nimport { useState } from \"react\";\n\nimport { isNil } from \"ramda\";\nimport { removeFromLocalStorage, setToLocalStorage } from \"utils\";\n\nconst getStorageValue = (key, defaultValue) => {\n try {\n const storedValue = localStorage.getItem(key);\n\n return storedValue ? JSON.parse(storedValue) : defaultValue;\n } catch (error) {\n logger.error(error);\n\n return defaultValue;\n }\n};\n\nconst useLocalStorage = (key, defaultValue) => {\n const [storedValue, setStoredValue] = useState(() =>\n getStorageValue(key, defaultValue)\n );\n\n const setValue = value =>\n setStoredValue(prevStoredValue => {\n const newValue =\n typeof value === \"function\" ? value(prevStoredValue) : value;\n\n if (isNil(newValue)) {\n removeFromLocalStorage(key);\n } else {\n setToLocalStorage(key, newValue);\n }\n\n return newValue;\n });\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"mappings":";;;;;;;;AAEA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AALA;;AAOA,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAI;IACF,IAAMC,WAAW,GAAGC,YAAY,CAACC,OAAO,CAACJ,GAAG,CAAC;IAE7C,OAAOE,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC,GAAGD,YAAY;EAC7D,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdC,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IAEnB,OAAON,YAAY;EACrB;AACF,CAAC;AAED,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAIT,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAAS,SAAA,GAAsC,IAAAC,eAAQ,EAAC;MAAA,OAC7CZ,eAAe,CAACC,GAAG,EAAEC,YAAY,CAAC;IAAA,EACnC;IAAAW,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAFMR,WAAW,GAAAU,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAIlC,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK;IAAA,OACpBF,cAAc,CAAC,UAAAG,eAAe,EAAI;MAChC,IAAMC,QAAQ,GACZ,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACC,eAAe,CAAC,GAAGD,KAAK;MAE9D,IAAI,IAAAG,YAAK,EAACD,QAAQ,CAAC,EAAE;QACnB,IAAAE,6BAAsB,EAACpB,GAAG,CAAC;MAC7B,CAAC,MAAM;QACL,IAAAqB,wBAAiB,EAACrB,GAAG,EAAEkB,QAAQ,CAAC;MAClC;MAEA,OAAOA,QAAQ;IACjB,CAAC,CAAC;EAAA;EAEJ,OAAO,CAAChB,WAAW,EAAEa,QAAQ,CAAC;AAChC,CAAC;AAAC,IAAAO,QAAA,GAEab,eAAe;AAAAc,OAAA,cAAAD,QAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "3.0.13",
3
+ "version": "3.0.16",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -3,6 +3,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
 
4
4
  import { useState } from "react";
5
5
  import { isNil } from "ramda";
6
+ import { removeFromLocalStorage, setToLocalStorage } from "../../utils";
6
7
  var getStorageValue = function getStorageValue(key, defaultValue) {
7
8
  try {
8
9
  var storedValue = localStorage.getItem(key);
@@ -20,12 +21,15 @@ var useLocalStorage = function useLocalStorage(key, defaultValue) {
20
21
  storedValue = _useState2[0],
21
22
  setStoredValue = _useState2[1];
22
23
  var setValue = function setValue(value) {
23
- if (isNil(value)) {
24
- localStorage.removeItem(key);
25
- } else {
26
- localStorage.setItem(key, JSON.stringify(value));
27
- }
28
- setStoredValue(value);
24
+ return setStoredValue(function (prevStoredValue) {
25
+ var newValue = typeof value === "function" ? value(prevStoredValue) : value;
26
+ if (isNil(newValue)) {
27
+ removeFromLocalStorage(key);
28
+ } else {
29
+ setToLocalStorage(key, newValue);
30
+ }
31
+ return newValue;
32
+ });
29
33
  };
30
34
  return [storedValue, setValue];
31
35
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalStorage.js","names":["useState","isNil","getStorageValue","key","defaultValue","storedValue","localStorage","getItem","JSON","parse","error","logger","useLocalStorage","_useState","_useState2","_slicedToArray","setStoredValue","setValue","value","removeItem","setItem","stringify"],"sources":["../../../src/react-utils/useLocalStorage/useLocalStorage.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-local-storage */\n\nimport { useState } from \"react\";\n\nimport { isNil } from \"ramda\";\n\nconst getStorageValue = (key, defaultValue) => {\n try {\n const storedValue = localStorage.getItem(key);\n\n return storedValue ? JSON.parse(storedValue) : defaultValue;\n } catch (error) {\n logger.error(error);\n\n return defaultValue;\n }\n};\n\nconst useLocalStorage = (key, defaultValue) => {\n const [storedValue, setStoredValue] = useState(() =>\n getStorageValue(key, defaultValue)\n );\n\n const setValue = value => {\n if (isNil(value)) {\n localStorage.removeItem(key);\n } else {\n localStorage.setItem(key, JSON.stringify(value));\n }\n setStoredValue(value);\n };\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"mappings":";AAAA;;AAEA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,KAAK,QAAQ,OAAO;AAE7B,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAI;IACF,IAAMC,WAAW,GAAGC,YAAY,CAACC,OAAO,CAACJ,GAAG,CAAC;IAE7C,OAAOE,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC,GAAGD,YAAY;EAC7D,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdC,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IAEnB,OAAON,YAAY;EACrB;AACF,CAAC;AAED,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAIT,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAAS,SAAA,GAAsCb,QAAQ,CAAC;MAAA,OAC7CE,eAAe,CAACC,GAAG,EAAEC,YAAY,CAAC;IAAA,EACnC;IAAAU,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAFMR,WAAW,GAAAS,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAIlC,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK,EAAI;IACxB,IAAIjB,KAAK,CAACiB,KAAK,CAAC,EAAE;MAChBZ,YAAY,CAACa,UAAU,CAAChB,GAAG,CAAC;IAC9B,CAAC,MAAM;MACLG,YAAY,CAACc,OAAO,CAACjB,GAAG,EAAEK,IAAI,CAACa,SAAS,CAACH,KAAK,CAAC,CAAC;IAClD;IACAF,cAAc,CAACE,KAAK,CAAC;EACvB,CAAC;EAED,OAAO,CAACb,WAAW,EAAEY,QAAQ,CAAC;AAChC,CAAC;AAED,eAAeL,eAAe"}
1
+ {"version":3,"file":"useLocalStorage.js","names":["useState","isNil","removeFromLocalStorage","setToLocalStorage","getStorageValue","key","defaultValue","storedValue","localStorage","getItem","JSON","parse","error","logger","useLocalStorage","_useState","_useState2","_slicedToArray","setStoredValue","setValue","value","prevStoredValue","newValue"],"sources":["../../../src/react-utils/useLocalStorage/useLocalStorage.js"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/no-local-storage */\n\nimport { useState } from \"react\";\n\nimport { isNil } from \"ramda\";\nimport { removeFromLocalStorage, setToLocalStorage } from \"utils\";\n\nconst getStorageValue = (key, defaultValue) => {\n try {\n const storedValue = localStorage.getItem(key);\n\n return storedValue ? JSON.parse(storedValue) : defaultValue;\n } catch (error) {\n logger.error(error);\n\n return defaultValue;\n }\n};\n\nconst useLocalStorage = (key, defaultValue) => {\n const [storedValue, setStoredValue] = useState(() =>\n getStorageValue(key, defaultValue)\n );\n\n const setValue = value =>\n setStoredValue(prevStoredValue => {\n const newValue =\n typeof value === \"function\" ? value(prevStoredValue) : value;\n\n if (isNil(newValue)) {\n removeFromLocalStorage(key);\n } else {\n setToLocalStorage(key, newValue);\n }\n\n return newValue;\n });\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"mappings":";AAAA;;AAEA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,KAAK,QAAQ,OAAO;AAC7B,SAASC,sBAAsB,EAAEC,iBAAiB;AAElD,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAI;IACF,IAAMC,WAAW,GAAGC,YAAY,CAACC,OAAO,CAACJ,GAAG,CAAC;IAE7C,OAAOE,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACJ,WAAW,CAAC,GAAGD,YAAY;EAC7D,CAAC,CAAC,OAAOM,KAAK,EAAE;IACdC,MAAM,CAACD,KAAK,CAACA,KAAK,CAAC;IAEnB,OAAON,YAAY;EACrB;AACF,CAAC;AAED,IAAMQ,eAAe,GAAG,SAAlBA,eAAeA,CAAIT,GAAG,EAAEC,YAAY,EAAK;EAC7C,IAAAS,SAAA,GAAsCf,QAAQ,CAAC;MAAA,OAC7CI,eAAe,CAACC,GAAG,EAAEC,YAAY,CAAC;IAAA,EACnC;IAAAU,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAFMR,WAAW,GAAAS,UAAA;IAAEE,cAAc,GAAAF,UAAA;EAIlC,IAAMG,QAAQ,GAAG,SAAXA,QAAQA,CAAGC,KAAK;IAAA,OACpBF,cAAc,CAAC,UAAAG,eAAe,EAAI;MAChC,IAAMC,QAAQ,GACZ,OAAOF,KAAK,KAAK,UAAU,GAAGA,KAAK,CAACC,eAAe,CAAC,GAAGD,KAAK;MAE9D,IAAInB,KAAK,CAACqB,QAAQ,CAAC,EAAE;QACnBpB,sBAAsB,CAACG,GAAG,CAAC;MAC7B,CAAC,MAAM;QACLF,iBAAiB,CAACE,GAAG,EAAEiB,QAAQ,CAAC;MAClC;MAEA,OAAOA,QAAQ;IACjB,CAAC,CAAC;EAAA;EAEJ,OAAO,CAACf,WAAW,EAAEY,QAAQ,CAAC;AAChC,CAAC;AAED,eAAeL,eAAe"}
package/react-utils.d.ts CHANGED
@@ -288,6 +288,29 @@ export function useFuncDebounce<F extends Function>(func: F, delay?: number): F
288
288
  *
289
289
  * changes to the theme are automatically synchronized with local storage.
290
290
  *
291
+ * The following code snippet illustrates how we can pass a function to the
292
+ *
293
+ * setValue method of useLocalStorage
294
+ *
295
+ * @example
296
+ *
297
+ * import { useLocalStorage } from "@bigbinary/neeto-commons-frontend/react-utils";
298
+ * import { append } from "ramda";
299
+ *
300
+ * // here "hiddenColumns" is the storage key and "[]" is the initial value
301
+ * const [hiddenColumns, setHiddenColumns] = useLocalStorage("hiddenColumns", []);
302
+ *
303
+ * return (
304
+ * <Select
305
+ * options={[
306
+ * { label: "Name", value: "name" },
307
+ * { label: "Created at", value: "created_at" },
308
+ * ]}
309
+ * // when a new column to hide is selected, the same will be appended to the existing list of hidden columns and stored in local storage with the key "hiddenColumns"
310
+ * onChange={option => setHiddenColumns(append(option.value))}
311
+ * />
312
+ * );
313
+ * @endexample
291
314
  */
292
315
  export function useLocalStorage<T>(key: string, initialValue?: T): [T, (value: T) => void];
293
316
  /**