import { CheckCircle, XCircle } from '@phosphor-icons/react'; import { Suspense, useMemo } from 'react'; import { auth, HardwareModel, useBridgeQuery, useLibraryContext, useLibraryMutation, useLibraryQuery } from '@sd/client'; import { Button, Card, Loader, tw } from '@sd/ui'; import { Icon } from '~/components'; import { AuthRequiredOverlay } from '~/components/AuthRequiredOverlay'; import { LoginButton } from '~/components/LoginButton'; import { useLocale, useRouteTitle } from '~/hooks'; import { hardwareModelToIcon } from '~/util/hardware'; const DataBox = tw.div`max-w-[300px] rounded-md border border-app-line/50 bg-app-lightBox/20 p-2`; const Count = tw.div`min-w-[20px] flex h-[20px] px-1 items-center justify-center rounded-full border border-app-button/40 text-[9px]`; export const Component = () => { useRouteTitle('Cloud'); // const authState = auth.useStateSnapshot(); // const authSensitiveChild = () => { // if (authState.status === 'loggedIn') return ; // if (authState.status === 'notLoggedIn' || authState.status === 'loggingIn') // return ( //
// //
// //

// To access cloud related features, please login //

//
// //
//
// ); // return null; // }; return
{Authenticated()}
; }; // million-ignore function Authenticated() { const { library } = useLibraryContext(); const cloudLibrary: any = useLibraryQuery(['cloud.library.get'], { suspense: true, retry: false }); const getCloudDevice = useBridgeQuery(['cloud.devices.get'], { suspense: true, retry: false }); const cloudDevicesList = useBridgeQuery(['cloud.devices.list'], { suspense: true, retry: false }); console.log('[DEBUG] fetch cloud device:', getCloudDevice.data); console.log('[DEBUG] cloudDevicesList', cloudDevicesList.data); const createLibrary = useLibraryMutation(['cloud.library.create']); const { t } = useLocale(); const thisInstance = useMemo(() => { if (!cloudLibrary.data) return undefined; return cloudLibrary.data.instances.find( (instance: any) => instance.uuid === library.instance_id ); }, [cloudLibrary.data, library.instance_id]); return ( } > {cloudLibrary.data ? (
{thisInstance && }
) : (

{t('cloud_connect_description')}

)}
); } // million-ignore const Instances = ({ instances }: { instances: any[] }) => { const { library } = useLibraryContext(); const filteredInstances = instances.filter((instance) => instance.uuid !== library.instance_id); return (

Instances

{filteredInstances.length}
{filteredInstances.map((instance) => (

{instance.metadata.name}

Id:{' '} {instance.id}

UUID:{' '} {instance.uuid}

Public Key:{' '} {instance.identity}

))}
); }; interface LibraryProps { cloudLibrary: any; thisInstance: any | undefined; } // million-ignore const Library = ({ thisInstance, cloudLibrary }: LibraryProps) => { const syncLibrary = useLibraryMutation(['cloud.library.sync']); return (

Library

Name: {cloudLibrary.name}

); }; interface ThisInstanceProps { instance: any; } // million-ignore const ThisInstance = ({ instance }: ThisInstanceProps) => { return (

This Instance

{instance.metadata.name}

Id: {instance.id}

UUID: {instance.uuid}

Public Key:{' '} {instance.identity}

); };