react-native-mmkv 2.12.0 → 2.12.2

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.
@@ -14,7 +14,7 @@ buildscript {
14
14
  }
15
15
 
16
16
  dependencies {
17
- classpath("com.android.tools.build:gradle:7.2.2")
17
+ classpath("com.android.tools.build:gradle:8.2.2")
18
18
  }
19
19
  }
20
20
 
@@ -40,7 +40,14 @@ function useMMKV(configuration) {
40
40
  function createMMKVHook(getter) {
41
41
  return (key, instance) => {
42
42
  const mmkv = instance ?? getDefaultInstance();
43
- const [value, setValue] = (0, _react.useState)(() => getter(mmkv, key));
43
+ const [bump, setBump] = (0, _react.useState)(0);
44
+ const value = (0, _react.useMemo)(() => {
45
+ // bump is here as an additional outside dependency, so this useMemo
46
+ // re-computes the value each time bump changes, effectively acting as a hint
47
+ // that the outside value (storage) has changed. setting bump refreshes this value.
48
+ bump;
49
+ return getter(mmkv, key);
50
+ }, [mmkv, key, bump]);
44
51
 
45
52
  // update value by user set
46
53
  const set = (0, _react.useCallback)(v => {
@@ -66,16 +73,11 @@ function createMMKVHook(getter) {
66
73
  }
67
74
  }, [key, mmkv]);
68
75
 
69
- // update value if key or instance changes
70
- (0, _react.useEffect)(() => {
71
- setValue(getter(mmkv, key));
72
- }, [key, mmkv]);
73
-
74
76
  // update value if it changes somewhere else (second hook, same key)
75
77
  (0, _react.useEffect)(() => {
76
78
  const listener = mmkv.addOnValueChangedListener(changedKey => {
77
79
  if (changedKey === key) {
78
- setValue(getter(mmkv, key));
80
+ setBump(b => b + 1);
79
81
  }
80
82
  });
81
83
  return () => listener.remove();
@@ -1 +1 @@
1
- {"version":3,"names":["isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","lastConfiguration","current","createMMKVHook","getter","key","mmkv","value","setValue","useState","set","useCallback","v","newValue","delete","Uint8Array","Error","useEffect","listener","addOnValueChangedListener","changedKey","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","useMemo","undefined","JSON","parse","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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"}
1
+ {"version":3,"names":["isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","MMKV","useMMKV","configuration","instance","useRef","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","useState","value","useMemo","set","useCallback","v","newValue","delete","Uint8Array","Error","useEffect","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","undefined","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"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"}
@@ -29,7 +29,14 @@ export function useMMKV(configuration) {
29
29
  function createMMKVHook(getter) {
30
30
  return (key, instance) => {
31
31
  const mmkv = instance ?? getDefaultInstance();
32
- const [value, setValue] = useState(() => getter(mmkv, key));
32
+ const [bump, setBump] = useState(0);
33
+ const value = useMemo(() => {
34
+ // bump is here as an additional outside dependency, so this useMemo
35
+ // re-computes the value each time bump changes, effectively acting as a hint
36
+ // that the outside value (storage) has changed. setting bump refreshes this value.
37
+ bump;
38
+ return getter(mmkv, key);
39
+ }, [mmkv, key, bump]);
33
40
 
34
41
  // update value by user set
35
42
  const set = useCallback(v => {
@@ -55,16 +62,11 @@ function createMMKVHook(getter) {
55
62
  }
56
63
  }, [key, mmkv]);
57
64
 
58
- // update value if key or instance changes
59
- useEffect(() => {
60
- setValue(getter(mmkv, key));
61
- }, [key, mmkv]);
62
-
63
65
  // update value if it changes somewhere else (second hook, same key)
64
66
  useEffect(() => {
65
67
  const listener = mmkv.addOnValueChangedListener(changedKey => {
66
68
  if (changedKey === key) {
67
- setValue(getter(mmkv, key));
69
+ setBump(b => b + 1);
68
70
  }
69
71
  });
70
72
  return () => listener.remove();
@@ -1 +1 @@
1
- {"version":3,"names":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","value","setValue","set","v","newValue","delete","Uint8Array","Error","listener","addOnValueChangedListener","changedKey","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","undefined","JSON","parse","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AACzE,SAASC,IAAI,QAA2B,QAAQ;AAEhD,SAASC,oBAAoB,CAC3BC,IAAwB,EACxBC,KAAyB,EAChB;EACT,IAAID,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI,EAAE,OAAOD,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI;EAEvE,OACED,IAAI,CAACE,aAAa,KAAKD,KAAK,CAACC,aAAa,IAC1CF,IAAI,CAACG,EAAE,KAAKF,KAAK,CAACE,EAAE,IACpBH,IAAI,CAACI,IAAI,KAAKH,KAAK,CAACG,IAAI;AAE5B;AAEA,IAAIC,eAA4B,GAAG,IAAI;AACvC,SAASC,kBAAkB,GAAS;EAClC,IAAID,eAAe,IAAI,IAAI,EAAE;IAC3BA,eAAe,GAAG,IAAIP,IAAI,EAAE;EAC9B;EACA,OAAOO,eAAe;AACxB;;AAEA;AACA;AACA;;AAOA,OAAO,SAASE,OAAO,CAACC,aAAiC,EAAQ;EAC/D,MAAMC,QAAQ,GAAGhB,MAAM,EAAQ;EAC/B,MAAMiB,iBAAiB,GAAGjB,MAAM,EAAqB;EAErD,IAAIe,aAAa,IAAI,IAAI,EAAE,OAAOF,kBAAkB,EAAE;EAEtD,IACEG,QAAQ,CAACE,OAAO,IAAI,IAAI,IACxB,CAACZ,oBAAoB,CAACW,iBAAiB,CAACC,OAAO,EAAEH,aAAa,CAAC,EAC/D;IACAE,iBAAiB,CAACC,OAAO,GAAGH,aAAa;IACzCC,QAAQ,CAACE,OAAO,GAAG,IAAIb,IAAI,CAACU,aAAa,CAAC;EAC5C;EAEA,OAAOC,QAAQ,CAACE,OAAO;AACzB;AAEA,SAASC,cAAc,CAIrBC,MAA0C,EAAE;EAC5C,OAAO,CACLC,GAAW,EACXL,QAAe,KACuC;IACtD,MAAMM,IAAI,GAAGN,QAAQ,IAAIH,kBAAkB,EAAE;IAC7C,MAAM,CAACU,KAAK,EAAEC,QAAQ,CAAC,GAAGvB,QAAQ,CAAC,MAAMmB,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC;;IAE3D;IACA,MAAMI,GAAG,GAAGtB,WAAW,CACpBuB,CAAa,IAAK;MACjB,MAAMC,QAAQ,GAAG,OAAOD,CAAC,KAAK,UAAU,GAAGA,CAAC,CAACN,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC,GAAGK,CAAC;MACnE,QAAQ,OAAOC,QAAQ;QACrB,KAAK,QAAQ;QACb,KAAK,QAAQ;QACb,KAAK,SAAS;UACZL,IAAI,CAACG,GAAG,CAACJ,GAAG,EAAEM,QAAQ,CAAC;UACvB;QACF,KAAK,WAAW;UACdL,IAAI,CAACM,MAAM,CAACP,GAAG,CAAC;UAChB;QACF,KAAK,QAAQ;UACX,IAAIM,QAAQ,YAAYE,UAAU,EAAE;YAClCP,IAAI,CAACG,GAAG,CAACJ,GAAG,EAAEM,QAAQ,CAAC;YACvB;UACF,CAAC,MAAM;YACL,MAAM,IAAIG,KAAK,CACZ,sBAAqBH,QAAS,qBAAoB,CACpD;UACH;QACF;UACE,MAAM,IAAIG,KAAK,CAAE,cAAa,OAAOH,QAAS,oBAAmB,CAAC;MAAC;IAEzE,CAAC,EACD,CAACN,GAAG,EAAEC,IAAI,CAAC,CACZ;;IAED;IACAlB,SAAS,CAAC,MAAM;MACdoB,QAAQ,CAACJ,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC;IAC7B,CAAC,EAAE,CAACA,GAAG,EAAEC,IAAI,CAAC,CAAC;;IAEf;IACAlB,SAAS,CAAC,MAAM;MACd,MAAM2B,QAAQ,GAAGT,IAAI,CAACU,yBAAyB,CAAEC,UAAU,IAAK;QAC9D,IAAIA,UAAU,KAAKZ,GAAG,EAAE;UACtBG,QAAQ,CAACJ,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC;QAC7B;MACF,CAAC,CAAC;MACF,OAAO,MAAMU,QAAQ,CAACG,MAAM,EAAE;IAChC,CAAC,EAAE,CAACb,GAAG,EAAEC,IAAI,CAAC,CAAC;IAEf,OAAO,CAACC,KAAK,EAAEE,GAAG,CAAC;EACrB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMU,aAAa,GAAGhB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACxDL,QAAQ,CAACoB,SAAS,CAACf,GAAG,CAAC,CACxB;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMgB,aAAa,GAAGlB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACxDL,QAAQ,CAACsB,SAAS,CAACjB,GAAG,CAAC,CACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMkB,cAAc,GAAGpB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACzDL,QAAQ,CAACwB,UAAU,CAACnB,GAAG,CAAC,CACzB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMoB,aAAa,GAAGtB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACxDL,QAAQ,CAAC0B,SAAS,CAACrB,GAAG,CAAC,CACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASsB,aAAa,CAC3BtB,GAAW,EACXL,QAAe,EACmD;EAClE,MAAM,CAAC4B,IAAI,EAAEC,OAAO,CAAC,GAAGV,aAAa,CAACd,GAAG,EAAEL,QAAQ,CAAC;EAEpD,MAAMO,KAAK,GAAGrB,OAAO,CAAC,MAAM;IAC1B,IAAI0C,IAAI,IAAI,IAAI,EAAE,OAAOE,SAAS;IAClC,OAAOC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;EACzB,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,MAAMpB,QAAQ,GAAGrB,WAAW,CACzBuB,CAA+D,IAAK;IACnE,IAAIA,CAAC,YAAYuB,QAAQ,EAAE;MACzBJ,OAAO,CAAEK,WAAW,IAAK;QACvB,MAAMC,YAAY,GAAGD,WAAW,IAAI,IAAI,GAAGH,IAAI,CAACC,KAAK,CAACE,WAAW,CAAC,GAAQJ,SAAS;QACnF,MAAMnB,QAAQ,GAAGD,CAAC,CAACyB,YAAY,CAAC;QAChC;QACA,OAAOxB,QAAQ,IAAI,IAAI,GAAGoB,IAAI,CAACK,SAAS,CAACzB,QAAQ,CAAC,GAAGmB,SAAS;MAChE,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACA,MAAMnB,QAAQ,GAAGD,CAAC,IAAI,IAAI,GAAGqB,IAAI,CAACK,SAAS,CAAC1B,CAAC,CAAC,GAAGoB,SAAS;MAC1DD,OAAO,CAAClB,QAAQ,CAAC;IACnB;EACJ,CAAC,EACD,CAACkB,OAAO,CAAC,CAAC;EAEV,OAAO,CAACtB,KAAK,EAAEC,QAAQ,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS6B,eAAe,CAC7BC,oBAA2C,EAC3CtC,QAAe,EACT;EACN,MAAMuC,GAAG,GAAGvD,MAAM,CAACsD,oBAAoB,CAAC;EACxCC,GAAG,CAACrC,OAAO,GAAGoC,oBAAoB;EAElC,MAAMhC,IAAI,GAAGN,QAAQ,IAAIH,kBAAkB,EAAE;EAE7CT,SAAS,CAAC,MAAM;IACd,MAAM2B,QAAQ,GAAGT,IAAI,CAACU,yBAAyB,CAAEC,UAAU,IAAK;MAC9DsB,GAAG,CAACrC,OAAO,CAACe,UAAU,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,MAAMF,QAAQ,CAACG,MAAM,EAAE;EAChC,CAAC,EAAE,CAACZ,IAAI,CAAC,CAAC;AACZ"}
1
+ {"version":3,"names":["useRef","useState","useMemo","useCallback","useEffect","MMKV","isConfigurationEqual","left","right","encryptionKey","id","path","defaultInstance","getDefaultInstance","useMMKV","configuration","instance","lastConfiguration","current","createMMKVHook","getter","key","mmkv","bump","setBump","value","set","v","newValue","delete","Uint8Array","Error","listener","addOnValueChangedListener","changedKey","b","remove","useMMKVString","getString","useMMKVNumber","getNumber","useMMKVBoolean","getBoolean","useMMKVBuffer","getBuffer","useMMKVObject","json","setJson","undefined","JSON","parse","setValue","Function","currentJson","currentValue","stringify","useMMKVListener","valueChangedListener","ref"],"sourceRoot":"../../src","sources":["hooks.ts"],"mappings":"AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AACzE,SAASC,IAAI,QAA2B,QAAQ;AAEhD,SAASC,oBAAoB,CAC3BC,IAAwB,EACxBC,KAAyB,EAChB;EACT,IAAID,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI,EAAE,OAAOD,IAAI,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI;EAEvE,OACED,IAAI,CAACE,aAAa,KAAKD,KAAK,CAACC,aAAa,IAC1CF,IAAI,CAACG,EAAE,KAAKF,KAAK,CAACE,EAAE,IACpBH,IAAI,CAACI,IAAI,KAAKH,KAAK,CAACG,IAAI;AAE5B;AAEA,IAAIC,eAA4B,GAAG,IAAI;AACvC,SAASC,kBAAkB,GAAS;EAClC,IAAID,eAAe,IAAI,IAAI,EAAE;IAC3BA,eAAe,GAAG,IAAIP,IAAI,EAAE;EAC9B;EACA,OAAOO,eAAe;AACxB;;AAEA;AACA;AACA;;AAOA,OAAO,SAASE,OAAO,CAACC,aAAiC,EAAQ;EAC/D,MAAMC,QAAQ,GAAGhB,MAAM,EAAQ;EAC/B,MAAMiB,iBAAiB,GAAGjB,MAAM,EAAqB;EAErD,IAAIe,aAAa,IAAI,IAAI,EAAE,OAAOF,kBAAkB,EAAE;EAEtD,IACEG,QAAQ,CAACE,OAAO,IAAI,IAAI,IACxB,CAACZ,oBAAoB,CAACW,iBAAiB,CAACC,OAAO,EAAEH,aAAa,CAAC,EAC/D;IACAE,iBAAiB,CAACC,OAAO,GAAGH,aAAa;IACzCC,QAAQ,CAACE,OAAO,GAAG,IAAIb,IAAI,CAACU,aAAa,CAAC;EAC5C;EAEA,OAAOC,QAAQ,CAACE,OAAO;AACzB;AAEA,SAASC,cAAc,CAIrBC,MAA0C,EAAE;EAC5C,OAAO,CACLC,GAAW,EACXL,QAAe,KACuC;IACtD,MAAMM,IAAI,GAAGN,QAAQ,IAAIH,kBAAkB,EAAE;IAE7C,MAAM,CAACU,IAAI,EAAEC,OAAO,CAAC,GAAGvB,QAAQ,CAAC,CAAC,CAAC;IACnC,MAAMwB,KAAK,GAAGvB,OAAO,CAAC,MAAM;MAC1B;MACA;MACA;MACAqB,IAAI;MACJ,OAAOH,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC;IAC1B,CAAC,EAAE,CAACC,IAAI,EAAED,GAAG,EAAEE,IAAI,CAAC,CAAC;;IAErB;IACA,MAAMG,GAAG,GAAGvB,WAAW,CACpBwB,CAAa,IAAK;MACjB,MAAMC,QAAQ,GAAG,OAAOD,CAAC,KAAK,UAAU,GAAGA,CAAC,CAACP,MAAM,CAACE,IAAI,EAAED,GAAG,CAAC,CAAC,GAAGM,CAAC;MACnE,QAAQ,OAAOC,QAAQ;QACrB,KAAK,QAAQ;QACb,KAAK,QAAQ;QACb,KAAK,SAAS;UACZN,IAAI,CAACI,GAAG,CAACL,GAAG,EAAEO,QAAQ,CAAC;UACvB;QACF,KAAK,WAAW;UACdN,IAAI,CAACO,MAAM,CAACR,GAAG,CAAC;UAChB;QACF,KAAK,QAAQ;UACX,IAAIO,QAAQ,YAAYE,UAAU,EAAE;YAClCR,IAAI,CAACI,GAAG,CAACL,GAAG,EAAEO,QAAQ,CAAC;YACvB;UACF,CAAC,MAAM;YACL,MAAM,IAAIG,KAAK,CACZ,sBAAqBH,QAAS,qBAAoB,CACpD;UACH;QACF;UACE,MAAM,IAAIG,KAAK,CAAE,cAAa,OAAOH,QAAS,oBAAmB,CAAC;MAAC;IAEzE,CAAC,EACD,CAACP,GAAG,EAAEC,IAAI,CAAC,CACZ;;IAED;IACAlB,SAAS,CAAC,MAAM;MACd,MAAM4B,QAAQ,GAAGV,IAAI,CAACW,yBAAyB,CAAEC,UAAU,IAAK;QAC9D,IAAIA,UAAU,KAAKb,GAAG,EAAE;UACtBG,OAAO,CAAEW,CAAC,IAAKA,CAAC,GAAG,CAAC,CAAC;QACvB;MACF,CAAC,CAAC;MACF,OAAO,MAAMH,QAAQ,CAACI,MAAM,EAAE;IAChC,CAAC,EAAE,CAACf,GAAG,EAAEC,IAAI,CAAC,CAAC;IAEf,OAAO,CAACG,KAAK,EAAEC,GAAG,CAAC;EACrB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMW,aAAa,GAAGlB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACxDL,QAAQ,CAACsB,SAAS,CAACjB,GAAG,CAAC,CACxB;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMkB,aAAa,GAAGpB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACxDL,QAAQ,CAACwB,SAAS,CAACnB,GAAG,CAAC,CACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMoB,cAAc,GAAGtB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACzDL,QAAQ,CAAC0B,UAAU,CAACrB,GAAG,CAAC,CACzB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMsB,aAAa,GAAGxB,cAAc,CAAC,CAACH,QAAQ,EAAEK,GAAG,KACxDL,QAAQ,CAAC4B,SAAS,CAACvB,GAAG,CAAC,CACxB;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASwB,aAAa,CAC3BxB,GAAW,EACXL,QAAe,EACmG;EAClH,MAAM,CAAC8B,IAAI,EAAEC,OAAO,CAAC,GAAGV,aAAa,CAAChB,GAAG,EAAEL,QAAQ,CAAC;EAEpD,MAAMS,KAAK,GAAGvB,OAAO,CAAC,MAAM;IAC1B,IAAI4C,IAAI,IAAI,IAAI,EAAE,OAAOE,SAAS;IAClC,OAAOC,IAAI,CAACC,KAAK,CAACJ,IAAI,CAAC;EACzB,CAAC,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,MAAMK,QAAQ,GAAGhD,WAAW,CACzBwB,CAA6D,IAAK;IACjE,IAAIA,CAAC,YAAYyB,QAAQ,EAAE;MACzBL,OAAO,CAAEM,WAAW,IAAK;QACvB,MAAMC,YAAY,GAChBD,WAAW,IAAI,IAAI,GAAIJ,IAAI,CAACC,KAAK,CAACG,WAAW,CAAC,GAASL,SAAS;QAClE,MAAMpB,QAAQ,GAAGD,CAAC,CAAC2B,YAAY,CAAC;QAChC;QACA,OAAO1B,QAAQ,IAAI,IAAI,GAAGqB,IAAI,CAACM,SAAS,CAAC3B,QAAQ,CAAC,GAAGoB,SAAS;MAChE,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACA,MAAMpB,QAAQ,GAAGD,CAAC,IAAI,IAAI,GAAGsB,IAAI,CAACM,SAAS,CAAC5B,CAAC,CAAC,GAAGqB,SAAS;MAC1DD,OAAO,CAACnB,QAAQ,CAAC;IACnB;EACF,CAAC,EACD,CAACmB,OAAO,CAAC,CACV;EAED,OAAO,CAACtB,KAAK,EAAE0B,QAAQ,CAAC;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,eAAe,CAC7BC,oBAA2C,EAC3CzC,QAAe,EACT;EACN,MAAM0C,GAAG,GAAG1D,MAAM,CAACyD,oBAAoB,CAAC;EACxCC,GAAG,CAACxC,OAAO,GAAGuC,oBAAoB;EAElC,MAAMnC,IAAI,GAAGN,QAAQ,IAAIH,kBAAkB,EAAE;EAE7CT,SAAS,CAAC,MAAM;IACd,MAAM4B,QAAQ,GAAGV,IAAI,CAACW,yBAAyB,CAAEC,UAAU,IAAK;MAC9DwB,GAAG,CAACxC,OAAO,CAACgB,UAAU,CAAC;IACzB,CAAC,CAAC;IACF,OAAO,MAAMF,QAAQ,CAACI,MAAM,EAAE;EAChC,CAAC,EAAE,CAACd,IAAI,CAAC,CAAC;AACZ"}
@@ -64,7 +64,7 @@ export declare const useMMKVBuffer: (key: string, instance?: MMKV) => [value: Ui
64
64
  * const [user, setUser] = useMMKVObject<User>("user")
65
65
  * ```
66
66
  */
67
- export declare function useMMKVObject<T>(key: string, instance?: MMKV): [value: T | undefined, setValue: (value: T | undefined) => void];
67
+ export declare function useMMKVObject<T>(key: string, instance?: MMKV): [value: T | undefined, setValue: (value: T | undefined | ((prevValue: T | undefined) => T | undefined)) => void];
68
68
  /**
69
69
  * Listen for changes in the given MMKV storage instance.
70
70
  * If no instance is passed, the default instance will be used.
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAuBjD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAAC;AAChC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;AA8EhE;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAhEjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAgEpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QA9EjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CA8EpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QA3FlB,MAAM,aACA,IAAI,sIAC8B,IAAI,CA2FpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAxGjB,MAAM,aACA,IAAI,kJAC8B,IAAI,CAwGpD,CAAC;AACF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,IAAI,GACd,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC,CA0BlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3C,QAAQ,CAAC,EAAE,IAAI,GACd,IAAI,CAYN"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAuBjD;;GAEG;AACH,wBAAgB,OAAO,IAAI,IAAI,CAAC;AAChC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;AAiFhE;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAnEjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAmEpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QAjFjB,MAAM,aACA,IAAI,kIAC8B,IAAI,CAiFpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QA9FlB,MAAM,aACA,IAAI,sIAC8B,IAAI,CA8FpD,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,QA3GjB,MAAM,aACA,IAAI,kJAC8B,IAAI,CA2GpD,CAAC;AACF;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,QAAQ,CAAC,EAAE,IAAI,GACd,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,GAAG,SAAS,CAAC,KAAK,IAAI,CAAC,CA4BlH;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,oBAAoB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAC3C,QAAQ,CAAC,EAAE,IAAI,GACd,IAAI,CAYN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-mmkv",
3
- "version": "2.12.0",
3
+ "version": "2.12.2",
4
4
  "description": "The fastest key/value storage for React Native. ~30x faster than AsyncStorage! Works on Android, iOS and Web.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -61,25 +61,26 @@
61
61
  "@jamesacarr/eslint-formatter-github-actions": "^0.2.0",
62
62
  "@react-native-community/eslint-config": "^3.2.0",
63
63
  "@react-native-community/eslint-plugin": "^1.3.0",
64
- "@release-it/conventional-changelog": "^5.1.1",
65
- "@testing-library/react-native": "^12.3.2",
66
- "@tsconfig/react-native": "^2.0.3",
67
- "@types/jest": "^29.5.7",
68
- "@types/react": "^18.2.36",
69
- "@types/react-test-renderer": "^18.0.5",
70
- "@typescript-eslint/eslint-plugin": "^5.58.0",
71
- "@typescript-eslint/parser": "^5.58.0",
72
- "eslint": "^8.38.0",
73
- "eslint-plugin-jest": "^27.2.1",
64
+ "@release-it/conventional-changelog": "^8.0.1",
65
+ "@testing-library/react-native": "^12.4.3",
66
+ "@tsconfig/react-native": "^3.0.3",
67
+ "@types/jest": "^29.5.12",
68
+ "@types/react": "^18.2.55",
69
+ "@types/react-test-renderer": "^18.0.7",
70
+ "@typescript-eslint/eslint-plugin": "^7.0.1",
71
+ "@typescript-eslint/parser": "^7.0.1",
72
+ "eslint": "^8.56.0",
73
+ "eslint-plugin-ft-flow": "^3.0.4",
74
+ "eslint-plugin-jest": "^27.8.0",
74
75
  "jest": "^29.7.0",
75
76
  "metro-react-native-babel-preset": "^0.77.0",
76
- "prettier": "^2.8.7",
77
+ "prettier": "^3.2.5",
77
78
  "react": "^18.2.0",
78
79
  "react-native": "^0.71.6",
79
80
  "react-native-builder-bob": "^0.20.4",
80
81
  "react-test-renderer": "^18.2.0",
81
82
  "release-it": "^15.10.1",
82
- "typescript": "^4.9.4"
83
+ "typescript": "^5.3.3"
83
84
  },
84
85
  "peerDependencies": {
85
86
  "react": "*",
@@ -28,5 +28,9 @@ Pod::Spec.new do |s|
28
28
  ]
29
29
 
30
30
  s.dependency "MMKV", ">= 1.3.3"
31
- s.dependency "React-Core"
31
+ if respond_to?(:install_modules_dependencies, true)
32
+ install_modules_dependencies(s)
33
+ else
34
+ s.dependency "React-Core"
35
+ end
32
36
  end
package/src/hooks.ts CHANGED
@@ -58,7 +58,15 @@ function createMMKVHook<
58
58
  instance?: MMKV
59
59
  ): [value: T, setValue: (value: TSetAction) => void] => {
60
60
  const mmkv = instance ?? getDefaultInstance();
61
- const [value, setValue] = useState(() => getter(mmkv, key));
61
+
62
+ const [bump, setBump] = useState(0);
63
+ const value = useMemo(() => {
64
+ // bump is here as an additional outside dependency, so this useMemo
65
+ // re-computes the value each time bump changes, effectively acting as a hint
66
+ // that the outside value (storage) has changed. setting bump refreshes this value.
67
+ bump;
68
+ return getter(mmkv, key);
69
+ }, [mmkv, key, bump]);
62
70
 
63
71
  // update value by user set
64
72
  const set = useCallback(
@@ -89,16 +97,11 @@ function createMMKVHook<
89
97
  [key, mmkv]
90
98
  );
91
99
 
92
- // update value if key or instance changes
93
- useEffect(() => {
94
- setValue(getter(mmkv, key));
95
- }, [key, mmkv]);
96
-
97
100
  // update value if it changes somewhere else (second hook, same key)
98
101
  useEffect(() => {
99
102
  const listener = mmkv.addOnValueChangedListener((changedKey) => {
100
103
  if (changedKey === key) {
101
- setValue(getter(mmkv, key));
104
+ setBump((b) => b + 1);
102
105
  }
103
106
  });
104
107
  return () => listener.remove();
@@ -176,7 +179,7 @@ export const useMMKVBuffer = createMMKVHook((instance, key) =>
176
179
  export function useMMKVObject<T>(
177
180
  key: string,
178
181
  instance?: MMKV
179
- ): [value: T | undefined, setValue: (value: T | undefined) => void] {
182
+ ): [value: T | undefined, setValue: (value: T | undefined | ((prevValue: T | undefined) => T | undefined)) => void] {
180
183
  const [json, setJson] = useMMKVString(key, instance);
181
184
 
182
185
  const value = useMemo(() => {
@@ -185,21 +188,23 @@ export function useMMKVObject<T>(
185
188
  }, [json]);
186
189
 
187
190
  const setValue = useCallback(
188
- (v: (T | undefined) | ((prev: T | undefined) => (T | undefined))) => {
191
+ (v: (T | undefined) | ((prev: T | undefined) => T | undefined)) => {
189
192
  if (v instanceof Function) {
190
193
  setJson((currentJson) => {
191
- const currentValue = currentJson != null ? JSON.parse(currentJson) as T : undefined
194
+ const currentValue =
195
+ currentJson != null ? (JSON.parse(currentJson) as T) : undefined;
192
196
  const newValue = v(currentValue);
193
197
  // Store the Object as a serialized Value or clear the value
194
198
  return newValue != null ? JSON.stringify(newValue) : undefined;
195
199
  });
196
200
  } else {
197
201
  // Store the Object as a serialized Value or clear the value
198
- const newValue = v != null ? JSON.stringify(v) : undefined
202
+ const newValue = v != null ? JSON.stringify(v) : undefined;
199
203
  setJson(newValue);
200
204
  }
201
- },
202
- [setJson]);
205
+ },
206
+ [setJson]
207
+ );
203
208
 
204
209
  return [value, setValue];
205
210
  }