Socket
Socket
Sign inDemoInstall

use-persisted-state

Package Overview
Dependencies
7
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.2.0 to 0.3.0-alpha.0

2

dist/use-persisted-state.js

@@ -1,1 +0,1 @@

var e=require("react"),n={},t=function(e,t,r){return n[e]||(n[e]={callbacks:[],value:r}),n[e].callbacks.push(t),{deregister:function(){var r=n[e].callbacks,u=r.indexOf(t);u>-1&&r.splice(u,1)},emit:function(r){n[e].value!==r&&(n[e].value=r,n[e].callbacks.forEach(function(e){t!==e&&e(r)}))}}},r=function(n,r,u){var c,f,a,i=e.useRef(null),o=e.useCallback(function(){return function(e){return{get:function(n,t){var r=e.getItem(n);return null===r?"function"==typeof t?t():t:JSON.parse(r)},set:function(n,t){e.setItem(n,JSON.stringify(t))}}}(u)},[u])(),l=o.get,s=o.set,v=e.useState(function(){return l(r,n)}),g=v[0],b=v[1];return c="storage",f=function(e){var n=e.key,t=JSON.parse(e.newValue);n===r&&g!==t&&b(t)},a=e.useRef(),e.useEffect(function(){a.current=f}),e.useEffect(function(){var e=function(e){return a.current(e)};return global.addEventListener(c,e),function(){global.removeEventListener(c,e)}},[c]),e.useEffect(function(){return i.current=t(r,b,n),function(){i.current.deregister()}},[]),e.useEffect(function(){s(r,g),i.current.emit(g)},[g]),[g,b]};module.exports=function(n,t){return void 0===t&&(t=global.localStorage),t?function(e){return r(e,n,t)}:e.useState};
var e,t=require("react"),n=(e=require("@use-it/event-listener"))&&"object"==typeof e&&"default"in e?e.default:e,r={},u=function(e,t,n){return r[e]||(r[e]={callbacks:[],value:n}),r[e].callbacks.push(t),{deregister:function(){var n=r[e].callbacks,u=n.indexOf(t);u>-1&&n.splice(u,1)},emit:function(n){r[e].value!==n&&(r[e].value=n,r[e].callbacks.forEach(function(e){t!==e&&e(n)}))}}};module.exports=function(e,r){if(void 0===r&&(r=global.localStorage),r){var c=function(e){return{get:function(t,n){var r=e.getItem(t);return null===r?"function"==typeof n?n():n:JSON.parse(r)},set:function(t,n){e.setItem(t,JSON.stringify(n))}}}(r);return function(r){return function(e,r,c){var i=c.get,a=c.set,f=t.useRef(null),o=t.useState(function(){return i(r,e)}),l=o[0],s=o[1];return n("storage",function(e){var t=e.key,n=JSON.parse(e.newValue);t===r&&l!==n&&s(n)}),t.useEffect(function(){return f.current=u(r,s,e),function(){f.current.deregister()}},[]),t.useEffect(function(){a(r,l),f.current.emit(l)},[l]),[l,s]}(r,e,c)}}return t.useState};

@@ -1,1 +0,1 @@

import{useRef as n,useEffect as t,useState as e,useCallback as r}from"react";var u={},c=function(n,t,e){return u[n]||(u[n]={callbacks:[],value:e}),u[n].callbacks.push(t),{deregister:function(){var e=u[n].callbacks,r=e.indexOf(t);r>-1&&e.splice(r,1)},emit:function(e){u[n].value!==e&&(u[n].value=e,u[n].callbacks.forEach(function(n){t!==n&&n(e)}))}}},o=function(u,o,i){var a,f,l,s=n(null),v=r(function(){return function(n){return{get:function(t,e){var r=n.getItem(t);return null===r?"function"==typeof e?e():e:JSON.parse(r)},set:function(t,e){n.setItem(t,JSON.stringify(e))}}}(i)},[i])(),g=v.get,b=v.set,d=e(function(){return g(o,u)}),m=d[0],p=d[1];return a="storage",f=function(n){var t=n.key,e=JSON.parse(n.newValue);t===o&&m!==e&&p(e)},l=n(),t(function(){l.current=f}),t(function(){var n=function(n){return l.current(n)};return global.addEventListener(a,n),function(){global.removeEventListener(a,n)}},[a]),t(function(){return s.current=c(o,p,u),function(){s.current.deregister()}},[]),t(function(){b(o,m),s.current.emit(m)},[m]),[m,p]};export default function(n,t){return void 0===t&&(t=global.localStorage),t?function(e){return o(e,n,t)}:e}
import{useState as t,useEffect as n,useRef as e}from"react";import r from"@use-it/event-listener";var u={},c=function(t,n,e){return u[t]||(u[t]={callbacks:[],value:e}),u[t].callbacks.push(n),{deregister:function(){var e=u[t].callbacks,r=e.indexOf(n);r>-1&&e.splice(r,1)},emit:function(e){u[t].value!==e&&(u[t].value=e,u[t].callbacks.forEach(function(t){n!==t&&t(e)}))}}};export default function(u,i){if(void 0===i&&(i=global.localStorage),i){var o=function(t){return{get:function(n,e){var r=t.getItem(n);return null===r?"function"==typeof e?e():e:JSON.parse(r)},set:function(n,e){t.setItem(n,JSON.stringify(e))}}}(i);return function(i){return function(u,i,o){var a=o.get,f=o.set,l=e(null),s=t(function(){return a(i,u)}),v=s[0],g=s[1];return r("storage",function(t){var n=t.key,e=JSON.parse(t.newValue);n===i&&v!==e&&g(e)}),n(function(){return l.current=c(i,g,u),function(){l.current.deregister()}},[]),n(function(){f(i,v),l.current.emit(v)},[v]),[v,g]}(i,u,o)}}return t}

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):e.usePersistedState=t(e.react)}(this,function(e){var t={},n=function(e,n,u){return t[e]||(t[e]={callbacks:[],value:u}),t[e].callbacks.push(n),{deregister:function(){var u=t[e].callbacks,r=u.indexOf(n);r>-1&&u.splice(r,1)},emit:function(u){t[e].value!==u&&(t[e].value=u,t[e].callbacks.forEach(function(e){n!==e&&e(u)}))}}},u=function(t,u,r){var c,f,i,o=e.useRef(null),a=e.useCallback(function(){return function(e){return{get:function(t,n){var u=e.getItem(t);return null===u?"function"==typeof n?n():n:JSON.parse(u)},set:function(t,n){e.setItem(t,JSON.stringify(n))}}}(r)},[r])(),s=a.get,l=a.set,d=e.useState(function(){return s(u,t)}),v=d[0],g=d[1];return c="storage",f=function(e){var t=e.key,n=JSON.parse(e.newValue);t===u&&v!==n&&g(n)},i=e.useRef(),e.useEffect(function(){i.current=f}),e.useEffect(function(){var e=function(e){return i.current(e)};return global.addEventListener(c,e),function(){global.removeEventListener(c,e)}},[c]),e.useEffect(function(){return o.current=n(u,g,t),function(){o.current.deregister()}},[]),e.useEffect(function(){l(u,v),o.current.emit(v)},[v]),[v,g]};return function(t,n){return void 0===n&&(n=global.localStorage),n?function(e){return u(e,t,n)}:e.useState}});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("@use-it/event-listener")):"function"==typeof define&&define.amd?define(["react","@use-it/event-listener"],t):e.usePersistedState=t(e.react,e.useEventListener)}(this,function(e,t){t=t&&t.hasOwnProperty("default")?t.default:t;var n={},r=function(e,t,r){return n[e]||(n[e]={callbacks:[],value:r}),n[e].callbacks.push(t),{deregister:function(){var r=n[e].callbacks,u=r.indexOf(t);u>-1&&r.splice(u,1)},emit:function(r){n[e].value!==r&&(n[e].value=r,n[e].callbacks.forEach(function(e){t!==e&&e(r)}))}}};return function(n,u){if(void 0===u&&(u=global.localStorage),u){var i=function(e){return{get:function(t,n){var r=e.getItem(t);return null===r?"function"==typeof n?n():n:JSON.parse(r)},set:function(t,n){e.setItem(t,JSON.stringify(n))}}}(u);return function(u){return function(n,u,i){var c=i.get,f=i.set,a=e.useRef(null),o=e.useState(function(){return c(u,n)}),s=o[0],l=o[1];return t("storage",function(e){var t=e.key,n=JSON.parse(e.newValue);t===u&&s!==n&&l(n)}),e.useEffect(function(){return a.current=r(u,l,n),function(){a.current.deregister()}},[]),e.useEffect(function(){f(u,s),a.current.emit(s)},[s]),[s,l]}(u,n,i)}}return e.useState}});
{
"name": "use-persisted-state",
"version": "0.2.0",
"description": "A custom React Hook thst provides a multi-instance, multi-tab/browser shared and persistent state.",
"publishConfig": {
"tag": "next"
},
"version": "0.3.0-alpha.0",
"description": "A custom React Hook that provides a multi-instance, multi-tab/browser shared and persistent state.",
"main": "dist/use-persisted-state.js",

@@ -61,3 +64,6 @@ "umd:main": "dist/use-persisted-state.umd.js",

}
},
"dependencies": {
"@use-it/event-listener": "^0.1.2"
}
}

@@ -58,3 +58,3 @@ # use-persisted-state

The complete code is a follows.
The complete code is as follows.

@@ -78,6 +78,6 @@ ```js

The state is shared with any other hook using the same key, either:
The state is shared with any other hook using the same key, either
on the same page, across tabs, or even browser windows.
For example, open two copies of your app in two tabs.
For example, open two copies of your app in two tabs or even two windows.
Any changes to state in one tab will be rendered on tne other tab.

@@ -84,0 +84,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc