Browse Source

124844 show spinner in InvitedForm

soumaeda 2 năm trước cách đây
mục cha
commit
1a21c2042c
1 tập tin đã thay đổi với 5 bổ sung2 xóa
  1. 5 2
      apps/app/src/components/InvitedForm.tsx

+ 5 - 2
apps/app/src/components/InvitedForm.tsx

@@ -20,11 +20,13 @@ export const InvitedForm = (props: InvitedFormProps): JSX.Element => {
   const { data: user } = useCurrentUser();
   const [isConnectSuccess, setIsConnectSuccess] = useState<boolean>(false);
   const [loginErrors, setLoginErrors] = useState<Error[]>([]);
+  const [isLoading, setIsLoading] = useState(false);
 
   const { invitedFormUsername, invitedFormName } = props;
 
   const submitHandler = useCallback(async(e) => {
     e.preventDefault();
+    setIsLoading(true);
 
     const formData = e.target.elements;
 
@@ -48,6 +50,7 @@ export const InvitedForm = (props: InvitedFormProps): JSX.Element => {
     }
     catch (err) {
       setLoginErrors(err);
+      setIsLoading(false);
     }
   }, [router]);
 
@@ -154,9 +157,9 @@ export const InvitedForm = (props: InvitedFormProps): JSX.Element => {
         </div>
         {/* Create Button */}
         <div className="input-group justify-content-center d-flex mt-4">
-          <button type="submit" className="btn btn-fill" id="register">
+          <button type="submit" className="btn btn-fill" id="register" disabled={isLoading}>
             <div className="eff"></div>
-            <span className="btn-label"><i className="icon-user-follow"></i></span>
+            <span className="btn-label"><i className={isLoading ? 'fa fa-spinner fa-pulse mr-1' : 'icon-user-follow'} /></span>
             <span className="btn-label-text">{t('Create')}</span>
           </button>
         </div>