(null);
- const signOutMutation = useMutation({
- mutationFn: () => authApi.signOut(),
- onSuccess: async () => {
- await queryClient.invalidateQueries({ queryKey: queryKeys.auth.session });
- await queryClient.invalidateQueries({ queryKey: queryKeys.health });
- },
- onError: (error) => {
- setActionError(error instanceof Error ? error.message : "Failed to sign out.");
- },
- });
+ const signOutMutation = useSignOut();
useEffect(() => {
setBreadcrumbs([
@@ -57,8 +48,13 @@ export function InstanceGeneralSettings() {
const updateGeneralMutation = useMutation({
mutationFn: instanceSettingsApi.updateGeneral,
+ onMutate: () => {
+ setActionError(null);
+ signOutMutation.reset();
+ },
onSuccess: async () => {
setActionError(null);
+ signOutMutation.reset();
await queryClient.invalidateQueries({ queryKey: queryKeys.instance.generalSettings });
},
onError: (error) => {
@@ -84,6 +80,11 @@ export function InstanceGeneralSettings() {
const keyboardShortcuts = generalQuery.data?.keyboardShortcuts === true;
const feedbackDataSharingPreference = generalQuery.data?.feedbackDataSharingPreference ?? "prompt";
const backupRetention: BackupRetentionPolicy = generalQuery.data?.backupRetention ?? DEFAULT_BACKUP_RETENTION;
+ const visibleActionError = signOutMutation.error instanceof Error
+ ? signOutMutation.error.message
+ : signOutMutation.error
+ ? "Failed to sign out."
+ : actionError;
return (
@@ -98,9 +99,9 @@ export function InstanceGeneralSettings() {
- {actionError && (
+ {visibleActionError && (
- {actionError}
+ {visibleActionError}
)}
@@ -150,7 +151,7 @@ export function InstanceGeneralSettings() {
updateGeneralMutation.mutate({ censorUsernameInLogs: !censorUsernameInLogs })}
- disabled={updateGeneralMutation.isPending}
+ disabled={updateGeneralMutation.isPending || signOutMutation.isPending}
aria-label="Toggle username log censoring"
/>
@@ -168,7 +169,7 @@ export function InstanceGeneralSettings() {
updateGeneralMutation.mutate({ keyboardShortcuts: !keyboardShortcuts })}
- disabled={updateGeneralMutation.isPending}
+ disabled={updateGeneralMutation.isPending || signOutMutation.isPending}
aria-label="Toggle keyboard shortcuts"
/>
@@ -194,7 +195,7 @@ export function InstanceGeneralSettings() {