integratedhub/islands/LoginPurposeButton.tsx
2026-01-20 09:02:26 -06:00

34 lines
838 B
TypeScript

import { ComponentChildren } from "preact";
interface LoginPurposeButtonProps {
purpose: "landlord" | "tenant";
className?: string;
lockRoute?: string | null;
children: ComponentChildren;
}
export default function LoginPurposeButton(
{ purpose, className, lockRoute, children }: LoginPurposeButtonProps,
) {
const handleClick = () => {
try {
if (lockRoute) {
localStorage.setItem("lock-route", lockRoute);
localStorage.removeItem("login-purpose");
} else {
localStorage.setItem("login-purpose", purpose);
localStorage.removeItem("lock-route");
}
} catch (_error) {
// Best-effort only.
}
globalThis.location.href = "/auth/login";
};
return (
<button type="button" onClick={handleClick} class={className}>
{children}
</button>
);
}