import { auth, useLibraryContext, useLibraryMutation, useLibraryQuery } from '@sd/client';
import { Button } from '@sd/ui';
import { AuthRequiredOverlay } from '~/components/AuthRequiredOverlay';
import { LoginButton } from '~/components/LoginButton';
import { useRouteTitle } from '~/hooks';
export const Component = () => {
useRouteTitle('Cloud');
const authState = auth.useStateSnapshot();
const authSensitiveChild = () => {
if (authState.status === 'loggedIn') return ;
if (authState.status === 'notLoggedIn' || authState.status === 'loggingIn')
return ;
return null;
};
return
{authSensitiveChild()}
;
};
function Authenticated() {
const { library } = useLibraryContext();
const cloudLibrary = useLibraryQuery(['cloud.library.get'], { suspense: true, retry: false });
const createLibrary = useLibraryMutation(['cloud.library.create']);
const syncLibrary = useLibraryMutation(['cloud.library.sync']);
const thisInstance = cloudLibrary.data?.instances.find(
(instance) => instance.uuid === library.instance_id
);
return (
<>
{cloudLibrary.data ? (
Library
Name: {cloudLibrary.data.name}
{thisInstance && (
This Instance
Id: {thisInstance.id}
UUID: {thisInstance.uuid}
Public Key: {thisInstance.identity}
)}
) : (
)}
>
);
}