mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
import { useWait, Waiter } from 'react-wait';
|
|
|
|
const Spinner = () => <img src="https://a.com/spinner.gif" />;
|
|
|
|
function A() {
|
|
const { isWaiting } = useWait();
|
|
return (
|
|
<div>
|
|
{isWaiting('creating user')
|
|
? 'Creating User...'
|
|
: 'Nothing happens'}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
function B() {
|
|
const { anyWaiting } = useWait();
|
|
return (
|
|
<div>
|
|
{anyWaiting() ? 'Something happening on app...' : 'Nothing happens'}
|
|
</div>
|
|
);
|
|
}
|
|
|
|
function C() {
|
|
const { startWaiting, endWaiting, isWaiting, Wait } = useWait();
|
|
|
|
function createUser() {
|
|
startWaiting('creating user');
|
|
// Faking the async work:
|
|
setTimeout(() => {
|
|
endWaiting('creating user');
|
|
}, 1000);
|
|
}
|
|
|
|
return (
|
|
<button disabled={isWaiting('creating user')} onClick={createUser}>
|
|
<Wait on="creating user" fallback={<Spinner />}>
|
|
Create User
|
|
</Wait>
|
|
</button>
|
|
);
|
|
}
|
|
|
|
const MyComponent = () => (
|
|
<Waiter>
|
|
<C />
|
|
</Waiter>
|
|
);
|