All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Fixes all 542 ESLint problems in the web package to achieve 0 errors and 0 warnings. Changes: - Fixed 144 issues: nullish coalescing, return types, unused variables - Fixed 118 issues: unnecessary conditions, type safety, template literals - Fixed 79 issues: non-null assertions, unsafe assignments, empty functions - Fixed 67 issues: explicit return types, promise handling, enum comparisons - Fixed 45 final warnings: missing return types, optional chains - Fixed 25 typecheck-related issues: async/await, type assertions, formatting - Fixed JSX.Element namespace errors across 90+ files All Quality Rails violations resolved. Lint and typecheck both pass with 0 problems. Files modified: 118 components, tests, hooks, and utilities Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
35 lines
770 B
TypeScript
35 lines
770 B
TypeScript
"use client";
|
|
|
|
import { useRouter } from "next/navigation";
|
|
import { Button, type ButtonProps } from "@mosaic/ui";
|
|
import { useAuth } from "@/lib/auth/auth-context";
|
|
|
|
interface LogoutButtonProps {
|
|
variant?: ButtonProps["variant"];
|
|
className?: string;
|
|
}
|
|
|
|
export function LogoutButton({
|
|
variant = "secondary",
|
|
className,
|
|
}: LogoutButtonProps): React.JSX.Element {
|
|
const router = useRouter();
|
|
const { signOut } = useAuth();
|
|
|
|
const handleSignOut = async (): Promise<void> => {
|
|
try {
|
|
await signOut();
|
|
} catch (error) {
|
|
console.error("Sign out error:", error);
|
|
} finally {
|
|
router.push("/login");
|
|
}
|
|
};
|
|
|
|
return (
|
|
<Button variant={variant} onClick={handleSignOut} className={className}>
|
|
Sign Out
|
|
</Button>
|
|
);
|
|
}
|