fix: delete/archive from keyboard updates count

pull/24438/head
Yaros 2025-12-07 19:23:07 +07:00
parent 3e06b637cc
commit 08066086d4
3 changed files with 17 additions and 1 deletions

@ -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();
};

@ -368,6 +368,8 @@
singleSelect={viewMode === PersonPageViewMode.SELECT_PERSON}
onSelect={handleSelectFeaturePhoto}
onEscape={handleEscape}
onKeyboardDelete={() => updateAssetCount()}
onKeyboardArchive={() => updateAssetCount()}
>
{#if viewMode === PersonPageViewMode.VIEW_ASSETS}
<!-- Person information block -->