diff --git a/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte b/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte
index 6cb60bafbe..219f93f997 100644
--- a/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte
+++ b/web/src/routes/(user)/partners/[userId]/[[photos=photos]]/[[assetId=id]]/+page.svelte
@@ -8,8 +8,9 @@
import { assetMultiSelectManager } from '$lib/managers/asset-multi-select-manager.svelte';
import { Route } from '$lib/route';
import { getAssetBulkActions } from '$lib/services/asset.service';
- import { AssetVisibility } from '@immich/sdk';
- import { ActionButton, CommandPaletteDefaultProvider } from '@immich/ui';
+ import { handleError } from '$lib/utils/handle-error';
+ import { AssetVisibility, updatePartner } from '@immich/sdk';
+ import { ActionButton, CommandPaletteDefaultProvider, Switch } from '@immich/ui';
import { mdiArrowLeft } from '@mdi/js';
import { t } from 'svelte-i18n';
import type { PageData } from './$types';
@@ -20,6 +21,8 @@
let { data }: Props = $props();
+ let inTimeline = $derived(data.inTimeline);
+
const options = $derived({
userId: data.partner.id,
visibility: AssetVisibility.Timeline,
@@ -32,6 +35,16 @@
return;
}
};
+
+ const handleToggleInTimeline = async (status: boolean) => {
+ try {
+ await updatePartner({ id: data.partner.id, partnerUpdateDto: { inTimeline: status } });
+ inTimeline = status;
+ } catch (error) {
+ handleError(error, $t('errors.unable_to_update_timeline_display_status'));
+ inTimeline = !status;
+ }
+ };