feat(web): add ctrl+a / ctrl+d shortcuts to select / deselect all assets (#8105)

* feat(web): use ctrl+a / ctrl+d to select / deselect all assets

* fix(web): use shortcutList for ctrl+a / ctrl+d

* fix(web): remove useless get()

* feat(web): asset interaction store can now select many assets at once
This commit is contained in:
Ethan Margaillan 2024-03-21 13:14:13 +01:00 committed by GitHub
parent b588a87d4a
commit 4de0b2f44e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 66 additions and 35 deletions

View file

@ -3,6 +3,7 @@ import { derived, writable } from 'svelte/store';
export interface AssetInteractionStore {
selectAsset: (asset: AssetResponseDto) => void;
selectAssets: (assets: AssetResponseDto[]) => void;
removeAssetFromMultiselectGroup: (asset: AssetResponseDto) => void;
addGroupToMultiselectGroup: (group: string) => void;
removeGroupFromMultiselectGroup: (group: string) => void;
@ -76,6 +77,13 @@ export function createAssetInteractionStore(): AssetInteractionStore {
selectedAssets.set(_selectedAssets);
};
const selectAssets = (assets: AssetResponseDto[]) => {
for (const asset of assets) {
_selectedAssets.add(asset);
}
selectedAssets.set(_selectedAssets);
};
const removeAssetFromMultiselectGroup = (asset: AssetResponseDto) => {
_selectedAssets.delete(asset);
selectedAssets.set(_selectedAssets);
@ -123,6 +131,7 @@ export function createAssetInteractionStore(): AssetInteractionStore {
return {
selectAsset,
selectAssets,
removeAssetFromMultiselectGroup,
addGroupToMultiselectGroup,
removeGroupFromMultiselectGroup,

View file

@ -519,4 +519,4 @@ export class AssetStore {
}
}
export const isSelectAllCancelled = writable(false);
export const isSelectingAllAssets = writable(false);