Skip to content

Instantly share code, notes, and snippets.

@easrng
Created November 7, 2023 22:22
Show Gist options
  • Save easrng/667140251d10206d4823e0d19c68ed43 to your computer and use it in GitHub Desktop.
Save easrng/667140251d10206d4823e0d19c68ed43 to your computer and use it in GitHub Desktop.
a preact hook for webextension storage
function useStorage() {
const [storage, setStorage] = useState(null)
useEffect(() => {
const listener = async () => {
const { storage } = await browser.storage.sync.get("storage")
setStorage(storage)
}
browser.storage.sync.onChanged.addListener(listener)
listener()
return () => {
browser.storage.sync.onChanged.removeListener(listener)
}
}, [])
return [storage, (value) => browser.storage.sync.set({ storage: value })]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment