mirror of
				https://github.com/immich-app/immich.git
				synced 2025-11-04 03:27:09 -05:00 
			
		
		
		
	fix(web): cancel select all (#6047)
* fix: cancel select all * rename var
This commit is contained in:
		
							parent
							
								
									0ed89e61ec
								
							
						
					
					
						commit
						9de557916b
					
				@ -1,7 +1,7 @@
 | 
				
			|||||||
<script lang="ts">
 | 
					<script lang="ts">
 | 
				
			||||||
  import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte';
 | 
					  import CircleIconButton from '$lib/components/elements/buttons/circle-icon-button.svelte';
 | 
				
			||||||
  import type { AssetInteractionStore } from '$lib/stores/asset-interaction.store';
 | 
					  import type { AssetInteractionStore } from '$lib/stores/asset-interaction.store';
 | 
				
			||||||
  import { BucketPosition, type AssetStore } from '$lib/stores/assets.store';
 | 
					  import { BucketPosition, type AssetStore, isSelectAllCancelled } from '$lib/stores/assets.store';
 | 
				
			||||||
  import { handleError } from '$lib/utils/handle-error';
 | 
					  import { handleError } from '$lib/utils/handle-error';
 | 
				
			||||||
  import { get } from 'svelte/store';
 | 
					  import { get } from 'svelte/store';
 | 
				
			||||||
  import { mdiTimerSand, mdiSelectAll } from '@mdi/js';
 | 
					  import { mdiTimerSand, mdiSelectAll } from '@mdi/js';
 | 
				
			||||||
@ -13,10 +13,14 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  const handleSelectAll = async () => {
 | 
					  const handleSelectAll = async () => {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
 | 
					      $isSelectAllCancelled = false;
 | 
				
			||||||
      selecting = true;
 | 
					      selecting = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      const assetGridState = get(assetStore);
 | 
					      const assetGridState = get(assetStore);
 | 
				
			||||||
      for (const bucket of assetGridState.buckets) {
 | 
					      for (const bucket of assetGridState.buckets) {
 | 
				
			||||||
 | 
					        if ($isSelectAllCancelled) {
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        await assetStore.loadBucket(bucket.bucketDate, BucketPosition.Unknown);
 | 
					        await assetStore.loadBucket(bucket.bucketDate, BucketPosition.Unknown);
 | 
				
			||||||
        for (const asset of bucket.assets) {
 | 
					        for (const asset of bucket.assets) {
 | 
				
			||||||
          assetInteractionStore.selectAsset(asset);
 | 
					          assetInteractionStore.selectAsset(asset);
 | 
				
			||||||
 | 
				
			|||||||
@ -5,6 +5,7 @@
 | 
				
			|||||||
  import CircleIconButton from '../elements/buttons/circle-icon-button.svelte';
 | 
					  import CircleIconButton from '../elements/buttons/circle-icon-button.svelte';
 | 
				
			||||||
  import { fly } from 'svelte/transition';
 | 
					  import { fly } from 'svelte/transition';
 | 
				
			||||||
  import { mdiClose } from '@mdi/js';
 | 
					  import { mdiClose } from '@mdi/js';
 | 
				
			||||||
 | 
					  import { isSelectAllCancelled } from '$lib/stores/assets.store';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  export let showBackButton = true;
 | 
					  export let showBackButton = true;
 | 
				
			||||||
  export let backIcon = mdiClose;
 | 
					  export let backIcon = mdiClose;
 | 
				
			||||||
@ -29,6 +30,11 @@
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const handleClose = () => {
 | 
				
			||||||
 | 
					    $isSelectAllCancelled = true;
 | 
				
			||||||
 | 
					    dispatch('close');
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  onMount(() => {
 | 
					  onMount(() => {
 | 
				
			||||||
    if (browser) {
 | 
					    if (browser) {
 | 
				
			||||||
      document.addEventListener('scroll', onScroll);
 | 
					      document.addEventListener('scroll', onScroll);
 | 
				
			||||||
@ -52,7 +58,7 @@
 | 
				
			|||||||
    <div class="flex place-items-center gap-6 justify-self-start dark:text-immich-dark-fg">
 | 
					    <div class="flex place-items-center gap-6 justify-self-start dark:text-immich-dark-fg">
 | 
				
			||||||
      {#if showBackButton}
 | 
					      {#if showBackButton}
 | 
				
			||||||
        <CircleIconButton
 | 
					        <CircleIconButton
 | 
				
			||||||
          on:click={() => dispatch('close')}
 | 
					          on:click={handleClose}
 | 
				
			||||||
          icon={backIcon}
 | 
					          icon={backIcon}
 | 
				
			||||||
          backgroundColor={'transparent'}
 | 
					          backgroundColor={'transparent'}
 | 
				
			||||||
          hoverColor={'#e2e7e9'}
 | 
					          hoverColor={'#e2e7e9'}
 | 
				
			||||||
 | 
				
			|||||||
@ -438,3 +438,5 @@ export class AssetStore {
 | 
				
			|||||||
    this.store$.update(() => this);
 | 
					    this.store$.update(() => this);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const isSelectAllCancelled = writable(false);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user