diff --git a/ui/src/pages/InstanceGeneralSettings.tsx b/ui/src/pages/InstanceGeneralSettings.tsx index 4b5e6b9c..923c8cb8 100644 --- a/ui/src/pages/InstanceGeneralSettings.tsx +++ b/ui/src/pages/InstanceGeneralSettings.tsx @@ -1,8 +1,10 @@ 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 { Button } from "../components/ui/button"; import { useBreadcrumbs } from "../context/BreadcrumbContext"; import { queryKeys } from "../lib/queryKeys"; import { cn } from "../lib/utils"; @@ -14,6 +16,16 @@ export function InstanceGeneralSettings() { const queryClient = useQueryClient(); const [actionError, setActionError] = useState(null); + const signOutMutation = useMutation({ + mutationFn: () => authApi.signOut(), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: queryKeys.auth.session }); + }, + onError: (error) => { + setActionError(error instanceof Error ? error.message : "Failed to sign out."); + }, + }); + useEffect(() => { setBreadcrumbs([ { label: "Instance Settings" }, @@ -213,6 +225,26 @@ export function InstanceGeneralSettings() {

+ +
+
+
+

Sign out

+

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

+
+ +
+
); }