1. 'use client';
    
  2. 
    
  3. import * as React from 'react';
    
  4. import {useFormStatus} from 'react-dom';
    
  5. import ErrorBoundary from './ErrorBoundary.js';
    
  6. 
    
  7. function ButtonDisabledWhilePending({action, children}) {
    
  8.   const {pending} = useFormStatus();
    
  9.   return (
    
  10.     <button disabled={pending} formAction={action}>
    
  11.       {children}
    
  12.     </button>
    
  13.   );
    
  14. }
    
  15. 
    
  16. export default function Button({action, children}) {
    
  17.   return (
    
  18.     <ErrorBoundary>
    
  19.       <form>
    
  20.         <ButtonDisabledWhilePending action={action}>
    
  21.           {children}
    
  22.         </ButtonDisabledWhilePending>
    
  23.       </form>
    
  24.     </ErrorBoundary>
    
  25.   );
    
  26. }