import AsyncButton from '@wojtekmaj/react-async-button'; import './Test.css'; import { Button } from './button.styles.js'; const pendingConfig = { children: 'Loading…', disabled: true, }; const successConfig = { children: 'Done', }; const errorConfig = { children: 'Try again', }; function sleep(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); } export default function Test() { function onSyncClick() { // Intentionally empty } async function onAsyncClick() { await sleep(2000); } function onSyncErrorClick() { throw new Error('Sync error'); } async function onAsyncErrorClick() { await sleep(2000); throw new Error('Async error'); } return (

react-async-button test page

Do sync stuff Do async stuff Crash on sync stuff Crash on async stuff I’m using as prop
); }