useLoading
Hooks that make it easy to manage the loading state of a Promise.
useLoading returns a Tuple of [isLoading: boolean, startLoading: (promise: Promise) => Promise].
- The first value, 
isLoading, initially starts withfalse. - The second value, 
startLoading, is a function that returns apromise.- When 
startLoadingis executed and the promise given as an argument is resolved,isLoadingbecomestrue. - If that Promise then resolves, 
isLoadingbecomesfalseagain. 
 - When 
 
See the example below to see exactly how to use useLoading.
const [isLoading, startLoading] = useLoading();
Examples
function postConfirmation(data: Data): Promise<Result> {
  return post.e2e<Result>('/api/sample/confirm', data);
}
function ConfirmButton({ data }: { data: Data }) {
  const [loading, startTransition] = useLoading();
  const handleSubmit = useCallback(async () => {
    const result = await startTransition(postConfirmation(data));
    router.push(`/success?id=${result.id}`);
  }, [call]);
  return (
    <Button loading={loading} onClick={handleSubmit}>
      GoGo
    </Button>
  );
}