From 511158556c51872e95bc02a3163ac793aeb8caaf Mon Sep 17 00:00:00 2001 From: dotta Date: Sat, 4 Apr 2026 09:50:13 -0500 Subject: [PATCH] Add log out button to instance general settings Adds a sign-out section at the bottom of the Instance Settings > General page. Calls the existing authApi.signOut endpoint and redirects to /auth on success. Uses destructive-styled button consistent with the action. Co-Authored-By: Paperclip --- ui/src/pages/InstanceGeneralSettings.tsx | 35 +++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/ui/src/pages/InstanceGeneralSettings.tsx b/ui/src/pages/InstanceGeneralSettings.tsx index 4b5e6b9c367..1f7e816be9a 100644 --- a/ui/src/pages/InstanceGeneralSettings.tsx +++ b/ui/src/pages/InstanceGeneralSettings.tsx @@ -1,9 +1,11 @@ import { useEffect, useState } from "react"; import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query"; import type { PatchInstanceGeneralSettings } from "@paperclipai/shared"; -import { SlidersHorizontal } from "lucide-react"; +import { LogOut, SlidersHorizontal } from "lucide-react"; +import { authApi } from "@/api/auth"; import { instanceSettingsApi } from "@/api/instanceSettings"; import { useBreadcrumbs } from "../context/BreadcrumbContext"; +import { useNavigate } from "../lib/router"; import { queryKeys } from "../lib/queryKeys"; import { cn } from "../lib/utils"; @@ -12,8 +14,19 @@ const FEEDBACK_TERMS_URL = import.meta.env.VITE_FEEDBACK_TERMS_URL?.trim() || "h export function InstanceGeneralSettings() { const { setBreadcrumbs } = useBreadcrumbs(); const queryClient = useQueryClient(); + const navigate = useNavigate(); const [actionError, setActionError] = useState(null); + const signOutMutation = useMutation({ + mutationFn: authApi.signOut, + onSuccess: () => { + navigate("/auth", { replace: true }); + }, + onError: (error) => { + setActionError(error instanceof Error ? error.message : "Failed to sign out"); + }, + }); + useEffect(() => { setBreadcrumbs([ { label: "Instance Settings" }, @@ -213,6 +226,26 @@ export function InstanceGeneralSettings() {

+ +
+
+
+

Log out

+

+ Sign out of this Paperclip instance. You will be redirected to the login page. +

+
+ +
+
); }