Files
spacedrive/interface/components/LoginButton.tsx
Brendan Allan 161e660cdc Centralise auth state into context (#1434)
* centralise auth state into context

* remove accounts from feature flags

* move from context to store in @sd/client
2023-10-08 17:04:23 +00:00

26 lines
581 B
TypeScript

import { auth } from '@sd/client';
import { Button, ButtonProps } from '@sd/ui';
import { usePlatform } from '..';
export function LoginButton({ children, ...props }: { onLogin?(): void } & ButtonProps) {
const authState = auth.useStateSnapshot();
const platform = usePlatform();
return (
<Button
variant="accent"
disabled={authState.status === 'loggingIn'}
onClick={async () => {
await auth.login(platform.auth);
props.onLogin?.();
}}
{...props}
>
{authState.status !== 'loggingIn' ? children || 'Log in' : 'Logging In...'}
</Button>
);
}