Skip to main content Link Search Menu Expand Document (external link)

Hooks overview

Added in v1.0.0


Table of contents


hooks

useAtom

Signature

export declare const useAtom: <R, W, const Mode extends "value" | "promise" | "promiseExit" = never>(
  atom: Atom.Writable<R, W>,
  options?: { readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined }
) => readonly [
  value: R,
  write: "promise" extends Mode
    ? (
        value: W,
        options?: { readonly signal?: AbortSignal | undefined } | undefined
      ) => Promise<Result.Result.Success<R>>
    : "promiseExit" extends Mode
      ? (
          value: W,
          options?: { readonly signal?: AbortSignal | undefined } | undefined
        ) => Promise<Exit.Exit<Result.Result.Success<R>, Result.Result.Failure<R>>>
      : (value: W | ((value: R) => W)) => void
]

Added in v1.0.0

useAtomInitialValues

Signature

export declare const useAtomInitialValues: (initialValues: Iterable<readonly [Atom.Atom<any>, any]>) => void

Added in v1.0.0

useAtomMount

Signature

export declare const useAtomMount: <A>(atom: Atom.Atom<A>) => void

Added in v1.0.0

useAtomRef

Signature

export declare const useAtomRef: <A>(ref: AtomRef.ReadonlyRef<A>) => A

Added in v1.0.0

useAtomRefProp

Signature

export declare const useAtomRefProp: <A, K extends keyof A>(ref: AtomRef.AtomRef<A>, prop: K) => AtomRef.AtomRef<A[K]>

Added in v1.0.0

useAtomRefPropValue

Signature

export declare const useAtomRefPropValue: <A, K extends keyof A>(ref: AtomRef.AtomRef<A>, prop: K) => A[K]

Added in v1.0.0

useAtomRefresh

Signature

export declare const useAtomRefresh: <A>(atom: Atom.Atom<A>) => () => void

Added in v1.0.0

useAtomSet

Signature

export declare const useAtomSet: <R, W, Mode extends "value" | "promise" | "promiseExit" = never>(
  atom: Atom.Writable<R, W>,
  options?: { readonly mode?: ([R] extends [Result.Result<any, any>] ? Mode : "value") | undefined }
) => "promise" extends Mode
  ? (value: W, options?: { readonly signal?: AbortSignal | undefined } | undefined) => Promise<Result.Result.Success<R>>
  : "promiseExit" extends Mode
    ? (
        value: W,
        options?: { readonly signal?: AbortSignal | undefined } | undefined
      ) => Promise<Exit.Exit<Result.Result.Success<R>, Result.Result.Failure<R>>>
    : (value: W | ((value: R) => W)) => void

Added in v1.0.0

useAtomSubscribe

Signature

export declare const useAtomSubscribe: <A>(
  atom: Atom.Atom<A>,
  f: (_: A) => void,
  options?: { readonly immediate?: boolean }
) => void

Added in v1.0.0

useAtomSuspense

Signature

export declare const useAtomSuspense: <A, E, const IncludeFailure extends boolean = false>(
  atom: Atom.Atom<Result.Result<A, E>>,
  options?: { readonly suspendOnWaiting?: boolean | undefined; readonly includeFailure?: IncludeFailure | undefined }
) => Result.Success<A, E> | (IncludeFailure extends true ? Result.Failure<A, E> : never)

Added in v1.0.0

useAtomValue

Signature

export declare const useAtomValue: { <A>(atom: Atom.Atom<A>): A; <A, B>(atom: Atom.Atom<A>, f: (_: A) => B): B }

Added in v1.0.0