Skip to content

Instantly share code, notes, and snippets.

import { useMemo } from "react";
import { atom, Atom, useAtomValue } from "jotai";
import { loadable } from "jotai/utils";
import { withAtomEffect } from "jotai-effect";
const cache = new WeakMap<Atom<Promise<unknown>>, Atom<[boolean, unknown]>>();
function pendingAtom<T>(promiseAtom: Atom<Promise<T>>, initialFallback: T): Atom<[boolean, T]> {
if (cache.has(promiseAtom)) {
return cache.get(promiseAtom)! as Atom<[boolean, T]>;