{"version":3,"file":"LocalStorageValueProvider.cjs","sources":["../../../src/utils/LocalStorageValueProvider.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { store } from './store';\n\nexport interface Props<T> {\n  storageKey: string;\n  defaultValue: T;\n  children: (value: T, onSaveToStore: (value: T) => void, onDeleteFromStore: () => void) => React.ReactNode;\n}\n\nexport const LocalStorageValueProvider = <T,>(props: Props<T>) => {\n  const { children, storageKey, defaultValue } = props;\n\n  const [state, setState] = useState({ value: store.getObject(props.storageKey, props.defaultValue) });\n\n  useEffect(() => {\n    const onStorageUpdate = (v: StorageEvent) => {\n      if (v.key === storageKey) {\n        setState({ value: store.getObject(props.storageKey, props.defaultValue) });\n      }\n    };\n\n    window.addEventListener('storage', onStorageUpdate);\n\n    return () => {\n      window.removeEventListener('storage', onStorageUpdate);\n    };\n  });\n\n  const onSaveToStore = (value: T) => {\n    try {\n      store.setObject(storageKey, value);\n    } catch (error) {\n      console.error(error);\n    }\n    setState({ value });\n  };\n\n  const onDeleteFromStore = () => {\n    try {\n      store.delete(storageKey);\n    } catch (error) {\n      console.log(error);\n    }\n    setState({ value: defaultValue });\n  };\n\n  return <>{children(state.value, onSaveToStore, onDeleteFromStore)}</>;\n};\n"],"names":["useState","store","useEffect"],"mappings":";;;;;;;;;AAWO,MAAM,yBAAA,GAA4B,CAAK,KAAA,KAAoB;AAChE,EAAA,MAAM,EAAE,QAAA,EAAU,UAAA,EAAY,YAAA,EAAa,GAAI,KAAA;AAE/C,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,CAAA,GAAIA,eAAS,EAAE,KAAA,EAAOC,WAAA,CAAM,SAAA,CAAU,KAAA,CAAM,UAAA,EAAY,KAAA,CAAM,YAAY,GAAG,CAAA;AAEnG,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,eAAA,GAAkB,CAAC,CAAA,KAAoB;AAC3C,MAAA,IAAI,CAAA,CAAE,QAAQ,UAAA,EAAY;AACxB,QAAA,QAAA,CAAS,EAAE,OAAOD,WAAA,CAAM,SAAA,CAAU,MAAM,UAAA,EAAY,KAAA,CAAM,YAAY,CAAA,EAAG,CAAA;AAAA,MAC3E;AAAA,IACF,CAAA;AAEA,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,eAAe,CAAA;AAElD,IAAA,OAAO,MAAM;AACX,MAAA,MAAA,CAAO,mBAAA,CAAoB,WAAW,eAAe,CAAA;AAAA,IACvD,CAAA;AAAA,EACF,CAAC,CAAA;AAED,EAAA,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAa;AAClC,IAAA,IAAI;AACF,MAAAA,WAAA,CAAM,SAAA,CAAU,YAAY,KAAK,CAAA;AAAA,IACnC,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,MAAM,KAAK,CAAA;AAAA,IACrB;AACA,IAAA,QAAA,CAAS,EAAE,OAAO,CAAA;AAAA,EACpB,CAAA;AAEA,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,IAAI;AACF,MAAAA,WAAA,CAAM,OAAO,UAAU,CAAA;AAAA,IACzB,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,IAAI,KAAK,CAAA;AAAA,IACnB;AACA,IAAA,QAAA,CAAS,EAAE,KAAA,EAAO,YAAA,EAAc,CAAA;AAAA,EAClC,CAAA;AAEA,EAAA,6DAAU,QAAA,EAAA,QAAA,CAAS,KAAA,CAAM,KAAA,EAAO,aAAA,EAAe,iBAAiB,CAAA,EAAE,CAAA;AACpE;;;;"}