Skip to content

hooks/usePersistedState

import { … } from 'zidane-ui'ui/src/hooks/usePersistedState.ts

Functions#

oneOfFunction#

parse for a closed string union: accepts only the listed members.

TypeScript
function oneOf<T extends string>(members: readonly T[]): (raw: string) => T | undefined
Type parameters
NameTypeDescription
Textends string
Parameters
NameTypeDescription
membersreadonly T[]

The accepted values.

(raw: string) => T | undefined

ui/src/hooks/usePersistedState.ts:88

parseBooleanFunction#

parse for a boolean stored as 'true' / 'false'.

TypeScript
function parseBoolean(raw: string): boolean | undefined
Parameters
NameTypeDescription
rawstring

The stored string.

boolean | undefined

ui/src/hooks/usePersistedState.ts:97

readPersistedFunction#

The value stored under key, parsed; undefined when absent, unrecognised or when storage throws.

TypeScript
function readPersisted<T>(
  key: string,
  parse: (raw: string) => T | undefined,
): T | undefined
Type parameters
NameDescription
T
Parameters
NameTypeDescription
keystring

The localStorage key.

parse(raw: string) => T | undefined

Validates the stored string; undefined for anything it doesn't recognise.

T | undefined

ui/src/hooks/usePersistedState.ts:24

usePersistedStateFunction#

useState kept in localStorage under key: hydrates from a valid stored value, writes on every set.

TypeScript
function usePersistedState<T>(
  key: string,
  fallback: T,
  parse: (raw: string) => T | undefined,
  serialize?: (value: T) => string | null,
): [T, Dispatch<SetStateAction<T>>]
Type parameters
NameDescription
T
Parameters
NameTypeDescription
keystring

The localStorage key.

fallbackT

The value when nothing valid is stored.

parse(raw: string) => T | undefined

Validates the stored string.

serialize?(value: T) => string | null

The stored form of a value; null removes the key (default String, null for nullish).

[T, Dispatch<SetStateAction<T>>]

ui/src/hooks/usePersistedState.ts:60

writePersistedFunction#

Store value under key; null / undefined removes it. Never throws.

TypeScript
function writePersisted(key: string, value: string | null | undefined): void
Parameters
NameTypeDescription
keystring

The localStorage key.

valuestring | null | undefined

The serialized value, or null / undefined to remove it.

ui/src/hooks/usePersistedState.ts:40