mirror of
https://github.com/immich-app/immich.git
synced 2025-12-10 09:13:23 +03:00
Compare commits
4 Commits
renovate/m
...
fix/person
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
52578fe650 | ||
|
|
08066086d4 | ||
|
|
3e06b637cc | ||
|
|
9e9b1bcc24 |
@@ -54,6 +54,8 @@
|
||||
isShowDeleteConfirmation?: boolean;
|
||||
onSelect?: (asset: TimelineAsset) => void;
|
||||
onEscape?: () => void;
|
||||
onKeyboardDelete?: (assetIds: string[]) => void;
|
||||
onKeyboardArchive?: (ids: string[]) => void;
|
||||
children?: Snippet;
|
||||
empty?: Snippet;
|
||||
customThumbnailLayout?: Snippet<[TimelineAsset]>;
|
||||
@@ -87,6 +89,8 @@
|
||||
isShowDeleteConfirmation = $bindable(false),
|
||||
onSelect = () => {},
|
||||
onEscape = () => {},
|
||||
onKeyboardDelete,
|
||||
onKeyboardArchive,
|
||||
children,
|
||||
empty,
|
||||
customThumbnailLayout,
|
||||
@@ -604,6 +608,8 @@
|
||||
{assetInteraction}
|
||||
bind:isShowDeleteConfirmation
|
||||
{onEscape}
|
||||
onAssetDelete={onKeyboardDelete}
|
||||
onArchive={onKeyboardArchive}
|
||||
/>
|
||||
|
||||
{#if timelineManager.months.length > 0}
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
assetInteraction: AssetInteraction;
|
||||
isShowDeleteConfirmation: boolean;
|
||||
onEscape?: () => void;
|
||||
onAssetDelete?: (assetIds: string[]) => void;
|
||||
onArchive?: (ids: string[]) => void;
|
||||
scrollToAsset: (asset: TimelineAsset) => boolean;
|
||||
}
|
||||
|
||||
@@ -35,6 +37,8 @@
|
||||
assetInteraction,
|
||||
isShowDeleteConfirmation = $bindable(false),
|
||||
onEscape,
|
||||
onAssetDelete,
|
||||
onArchive,
|
||||
scrollToAsset,
|
||||
}: Props = $props();
|
||||
|
||||
@@ -44,7 +48,10 @@
|
||||
isShowDeleteConfirmation = false;
|
||||
await deleteAssets(
|
||||
!(isTrashEnabled && !force),
|
||||
(assetIds) => timelineManager.removeAssets(assetIds),
|
||||
(assetIds) => {
|
||||
timelineManager.removeAssets(assetIds);
|
||||
onAssetDelete?.(assetIds);
|
||||
},
|
||||
assetInteraction.selectedAssets,
|
||||
!isTrashEnabled || force ? undefined : (assets) => timelineManager.upsertAssets(assets),
|
||||
);
|
||||
@@ -81,6 +88,7 @@
|
||||
const visibility = assetInteraction.isAllArchived ? AssetVisibility.Timeline : AssetVisibility.Archive;
|
||||
const ids = await archiveAssets(assetInteraction.selectedAssets, visibility);
|
||||
timelineManager.update(ids, (asset) => (asset.visibility = visibility));
|
||||
onArchive?.(ids);
|
||||
deselectAllAssets();
|
||||
};
|
||||
|
||||
|
||||
@@ -38,13 +38,7 @@
|
||||
import { getPeopleThumbnailUrl } from '$lib/utils';
|
||||
import { handleError } from '$lib/utils/handle-error';
|
||||
import { isExternalUrl } from '$lib/utils/navigation';
|
||||
import {
|
||||
AssetVisibility,
|
||||
getPersonStatistics,
|
||||
searchPerson,
|
||||
updatePerson,
|
||||
type PersonResponseDto,
|
||||
} from '@immich/sdk';
|
||||
import { AssetVisibility, searchPerson, updatePerson, type PersonResponseDto } from '@immich/sdk';
|
||||
import { LoadingSpinner, modalManager, toastManager } from '@immich/ui';
|
||||
import {
|
||||
mdiAccountBoxOutline,
|
||||
@@ -69,7 +63,7 @@
|
||||
|
||||
let { data }: Props = $props();
|
||||
|
||||
let numberOfAssets = $state(data.statistics.assets);
|
||||
let numberOfAssets = $derived(data.statistics.assets);
|
||||
let { isViewing: showAssetViewer } = assetViewingStore;
|
||||
|
||||
let timelineManager = $state<TimelineManager>() as TimelineManager;
|
||||
@@ -129,12 +123,7 @@
|
||||
};
|
||||
|
||||
const updateAssetCount = async () => {
|
||||
try {
|
||||
const { assets } = await getPersonStatistics({ id: person.id });
|
||||
numberOfAssets = assets;
|
||||
} catch (error) {
|
||||
handleError(error, "Can't update the asset count");
|
||||
}
|
||||
await invalidateAll();
|
||||
};
|
||||
|
||||
afterNavigate(({ from }) => {
|
||||
@@ -373,6 +362,8 @@
|
||||
singleSelect={viewMode === PersonPageViewMode.SELECT_PERSON}
|
||||
onSelect={handleSelectFeaturePhoto}
|
||||
onEscape={handleEscape}
|
||||
onKeyboardDelete={() => updateAssetCount()}
|
||||
onKeyboardArchive={() => updateAssetCount()}
|
||||
>
|
||||
{#if viewMode === PersonPageViewMode.VIEW_ASSETS}
|
||||
<!-- Person information block -->
|
||||
|
||||
Reference in New Issue
Block a user