recoil-toolkit
Version:
22 lines (16 loc) • 833 B
text/typescript
import { Snapshot, useRecoilCallback } from 'recoil';
import { RecoilGetLoadable, RecoilGetPromise } from '../../types';
export const useRecoilCurrentGetPromise = (): RecoilGetPromise =>
useRecoilCallback(({ snapshot: { getPromise } }) => getPromise, []);
export const useRecoilCurrentGetLoadable = (): RecoilGetLoadable =>
useRecoilCallback(({ snapshot: { getLoadable } }) => getLoadable, []);
export const useRecoilCurrentSnapshot = (): (() => Snapshot) =>
useRecoilCallback(
({ snapshot }) =>
() =>
snapshot,
[],
);
export const useRecoilCurrentSet = () => useRecoilCallback(({ set }) => set, []);
export const useRecoilCurrentReset = () => useRecoilCallback(({ reset }) => reset, []);
export const useRecoilCurrentRefresh = () => useRecoilCallback(({ refresh }) => refresh, []);