Optimistic updates
import Async from "react-async"
const getAttendance = () => fetch("/attendance").then(() => true, () => false)
const updateAttendance = ([attend]) =>
fetch("/attendance", { method: attend ? "POST" : "DELETE" }).then(() => attend, () => !attend)
const AttendanceToggle = () => (
<Async promiseFn={getAttendance} deferFn={updateAttendance}>
{({ isPending, data: isAttending, run, setData }) => (
<Toggle
on={isAttending}
onClick={() => {
setData(!isAttending)
run(!isAttending)
}}
disabled={isPending}
/>
)}
</Async>
)Last updated
Was this helpful?