Przeglądaj źródła

Implement better status for save button

jnfrati 3 lat temu
rodzic
commit
ef86d0a145

+ 6 - 5
dashboard/src/main/home/cluster-dashboard/stacks/ExpandedStack/_SourceConfig.tsx

@@ -25,7 +25,7 @@ const _SourceConfig = ({
   const [sourceConfigArrayCopy, setSourceConfigArrayCopy] = useState<
   const [sourceConfigArrayCopy, setSourceConfigArrayCopy] = useState<
     SourceConfig[]
     SourceConfig[]
   >(() => revision.source_configs);
   >(() => revision.source_configs);
-  const [isSaving, setIsSaving] = useState(false);
+  const [buttonStatus, setButtonStatus] = useState("");
 
 
   const handleChange = (sourceConfig: SourceConfig) => {
   const handleChange = (sourceConfig: SourceConfig) => {
     const newSourceConfigArray = [...sourceConfigArrayCopy];
     const newSourceConfigArray = [...sourceConfigArrayCopy];
@@ -37,7 +37,7 @@ const _SourceConfig = ({
   };
   };
 
 
   const handleSave = () => {
   const handleSave = () => {
-    setIsSaving(true);
+    setButtonStatus("loading");
     api
     api
       .updateStackSourceConfig(
       .updateStackSourceConfig(
         "<token>",
         "<token>",
@@ -52,10 +52,11 @@ const _SourceConfig = ({
         }
         }
       )
       )
       .then(() => {
       .then(() => {
-        setIsSaving(false);
+        setButtonStatus("successful");
         onSourceConfigUpdate();
         onSourceConfigUpdate();
       })
       })
       .catch((err) => {
       .catch((err) => {
+        setButtonStatus("Something went wrong");
         setCurrentError(err);
         setCurrentError(err);
       });
       });
   };
   };
@@ -93,7 +94,7 @@ const _SourceConfig = ({
             <SourceEditorDocker
             <SourceEditorDocker
               sourceConfig={sourceConfig}
               sourceConfig={sourceConfig}
               onChange={handleChange}
               onChange={handleChange}
-              readOnly={readOnly || isSaving}
+              readOnly={readOnly || buttonStatus === "loading"}
             />
             />
           </SourceConfigStyles.ItemContainer>
           </SourceConfigStyles.ItemContainer>
         );
         );
@@ -104,7 +105,7 @@ const _SourceConfig = ({
           text="Save"
           text="Save"
           clearPosition={true}
           clearPosition={true}
           makeFlush={true}
           makeFlush={true}
-          status={isSaving ? "loading" : ""}
+          status={buttonStatus}
           statusPosition="left"
           statusPosition="left"
         />
         />
       </SourceConfigStyles.SaveButtonRow>
       </SourceConfigStyles.SaveButtonRow>