@thisisagile/easy-react
Version:
Straightforward library building micro applications in react
12 lines (10 loc) • 391 B
text/typescript
import { useState } from 'react';
export function useToggle(initial = false): [boolean, () => void, <T>(fn: () => Promise<T>) => Promise<T>] {
const [state, setState] = useState(initial);
const toggle = () => setState(s => !s);
const flip = <T>(fn: () => Promise<T>) => {
setState(s => !s);
return fn().finally(() => setState(s => !s));
};
return [state, toggle, flip];
}