chore: update submit button loading state

This commit is contained in:
Siyuan 2025-11-07 07:56:28 +00:00
parent b49d67c87d
commit 19bc958689
1 changed files with 7 additions and 3 deletions

View File

@ -169,7 +169,10 @@ export default function SettingsNetworkRoute() {
const { register, handleSubmit, watch, formState, reset } = formMethods;
const [isSubmitting, setIsSubmitting] = useState(false);
const onSubmit = useCallback(async (settings: NetworkSettings) => {
if (settings.ipv4_static?.address?.includes("/")) {
const parts = settings.ipv4_static.address.split("/");
const cidrNotation = Number.parseInt(parts[1]);
@ -180,6 +183,7 @@ export default function SettingsNetworkRoute() {
settings.ipv4_static.address = parts[0];
}
setIsSubmitting(true);
send("setNetworkSettings", { settings }, async (resp) => {
if ("error" in resp) {
notifications.error(m.network_save_settings_failed({ error: resp.error.message || m.unknown_error() }));
@ -197,10 +201,10 @@ export default function SettingsNetworkRoute() {
} catch (error) {
console.error("Failed to fetch network data:", error);
}
notifications.success(m.network_dhcp_lease_renew_success());
setIsSubmitting(false);
}
});
}, [fetchNetworkData, reset, send]);
}, [fetchNetworkData, reset, send, setIsSubmitting]);
const onSubmitGate = useCallback(async (data: FieldValues) => {
const settings = prepareSettings(data);
@ -326,7 +330,7 @@ export default function SettingsNetworkRoute() {
size="SM"
theme="primary"
disabled={!(formState.isDirty || formState.isSubmitting)}
loading={formState.isSubmitting}
loading={formState.isSubmitting || isSubmitting}
type="submit"
text={formState.isSubmitting ? m.saving() : m.network_save_settings()}
/>