diff --git a/interface/app/$libraryId/settings/client/account/Profile.tsx b/interface/app/$libraryId/settings/client/account/Profile.tsx index 3fc6bc584..250f3b930 100644 --- a/interface/app/$libraryId/settings/client/account/Profile.tsx +++ b/interface/app/$libraryId/settings/client/account/Profile.tsx @@ -1,6 +1,14 @@ import { Envelope } from '@phosphor-icons/react'; -import { Dispatch, SetStateAction, useEffect } from 'react'; -import { useBridgeMutation, useBridgeQuery, useLibraryMutation } from '@sd/client'; +import clsx from 'clsx'; +import { Dispatch, SetStateAction, useEffect, useState } from 'react'; +import { + SyncStatus, + useBridgeMutation, + useBridgeQuery, + useBridgeSubscription, + useLibraryMutation, + useLibrarySubscription +} from '@sd/client'; import { Button, Card, tw } from '@sd/ui'; import StatCard from '~/app/$libraryId/overview/StatCard'; import { TruncatedText } from '~/components'; @@ -30,6 +38,13 @@ const Profile = ({ const cloudBootstrap = useBridgeMutation('cloud.bootstrap'); const devices = useBridgeQuery(['cloud.devices.list']); const addLibraryToCloud = useLibraryMutation('cloud.libraries.create'); + const [syncStatus, setSyncStatus] = useState(null); + useLibrarySubscription(['sync.active'], { + onData: (data) => { + console.log('sync activity', data); + setSyncStatus(data); + } + }); const listLibraries = useBridgeQuery(['cloud.libraries.list', true]); const createSyncGroup = useLibraryMutation('cloud.syncGroups.create'); const listSyncGroups = useBridgeQuery(['cloud.syncGroups.list']); @@ -72,6 +87,26 @@ const Profile = ({ + {/* Sync activity */} +
+

Sync Activity

+
+ {Object.keys(syncStatus ?? {}).map((status, index) => ( + +
+

{status}

+ + ))} +
+
+ {/* Automatically list libraries */}

Cloud Libraries