mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 02:39:03 -04:00 
			
		
		
		
	
							parent
							
								
									98a7412855
								
							
						
					
					
						commit
						c68702c0a7
					
				| @ -1,5 +1,5 @@ | |||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
|   import { createEventDispatcher, onMount } from 'svelte'; |   import { createEventDispatcher } from 'svelte'; | ||||||
|   import { api, type PersonResponseDto } from '@api'; |   import { api, type PersonResponseDto } from '@api'; | ||||||
|   import FaceThumbnail from './face-thumbnail.svelte'; |   import FaceThumbnail from './face-thumbnail.svelte'; | ||||||
|   import { quintOut } from 'svelte/easing'; |   import { quintOut } from 'svelte/easing'; | ||||||
| @ -17,7 +17,7 @@ | |||||||
|   import SwapHorizontal from 'svelte-material-icons/SwapHorizontal.svelte'; |   import SwapHorizontal from 'svelte-material-icons/SwapHorizontal.svelte'; | ||||||
| 
 | 
 | ||||||
|   export let person: PersonResponseDto; |   export let person: PersonResponseDto; | ||||||
|   let people: PersonResponseDto[] = []; |   export let people: PersonResponseDto[]; | ||||||
|   let selectedPeople: PersonResponseDto[] = []; |   let selectedPeople: PersonResponseDto[] = []; | ||||||
|   let screenHeight: number; |   let screenHeight: number; | ||||||
|   let isShowConfirmation = false; |   let isShowConfirmation = false; | ||||||
| @ -27,10 +27,6 @@ | |||||||
|   $: unselectedPeople = people.filter( |   $: unselectedPeople = people.filter( | ||||||
|     (source) => !selectedPeople.some((selected) => selected.id === source.id) && source.id !== person.id, |     (source) => !selectedPeople.some((selected) => selected.id === source.id) && source.id !== person.id, | ||||||
|   ); |   ); | ||||||
|   onMount(async () => { |  | ||||||
|     const { data } = await api.personApi.getAllPeople({ withHidden: false }); |  | ||||||
|     people = data.people; |  | ||||||
|   }); |  | ||||||
| 
 | 
 | ||||||
|   const onClose = () => { |   const onClose = () => { | ||||||
|     dispatch('go-back'); |     dispatch('go-back'); | ||||||
| @ -69,8 +65,9 @@ | |||||||
|         message: `Merged ${count} ${count === 1 ? 'person' : 'people'}`, |         message: `Merged ${count} ${count === 1 ? 'person' : 'people'}`, | ||||||
|         type: NotificationType.Info, |         type: NotificationType.Info, | ||||||
|       }); |       }); | ||||||
|  |       people = people.filter((person) => !results.some((result) => result.id === person.id && result.success === true)); | ||||||
|       await invalidateAll(); |       await invalidateAll(); | ||||||
|       onClose(); |       dispatch('merge'); | ||||||
|     } catch (error) { |     } catch (error) { | ||||||
|       handleError(error, 'Cannot merge faces'); |       handleError(error, 'Cannot merge faces'); | ||||||
|     } finally { |     } finally { | ||||||
|  | |||||||
| @ -87,7 +87,6 @@ export class AssetStore { | |||||||
|       }), |       }), | ||||||
| 
 | 
 | ||||||
|       websocketStore.onAssetTrash.subscribe((ids) => { |       websocketStore.onAssetTrash.subscribe((ids) => { | ||||||
|         console.log('onAssetTrash', ids); |  | ||||||
|         if (ids) { |         if (ids) { | ||||||
|           for (const id of ids) { |           for (const id of ids) { | ||||||
|             this.pendingChanges.push({ type: 'trash', value: id }); |             this.pendingChanges.push({ type: 'trash', value: id }); | ||||||
|  | |||||||
| @ -66,8 +66,10 @@ | |||||||
|   let personMerge2: PersonResponseDto; |   let personMerge2: PersonResponseDto; | ||||||
|   let potentialMergePeople: PersonResponseDto[] = []; |   let potentialMergePeople: PersonResponseDto[] = []; | ||||||
| 
 | 
 | ||||||
|  |   let refreshAssetGrid = false; | ||||||
|  | 
 | ||||||
|   let personName = ''; |   let personName = ''; | ||||||
|   let thumbnailData = api.getPeopleThumbnailUrl(data.person.id); |   $: thumbnailData = api.getPeopleThumbnailUrl(data.person.id); | ||||||
| 
 | 
 | ||||||
|   let name: string = data.person.name; |   let name: string = data.person.name; | ||||||
|   let suggestedPeople: PersonResponseDto[] = []; |   let suggestedPeople: PersonResponseDto[] = []; | ||||||
| @ -118,6 +120,7 @@ | |||||||
|         personId: data.person.id, |         personId: data.person.id, | ||||||
|       }); |       }); | ||||||
|       previousPersonId = data.person.id; |       previousPersonId = data.person.id; | ||||||
|  |       refreshAssetGrid = !refreshAssetGrid; | ||||||
|     } |     } | ||||||
|   }); |   }); | ||||||
| 
 | 
 | ||||||
| @ -139,6 +142,11 @@ | |||||||
|     } |     } | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   const handleMerge = () => { | ||||||
|  |     handleGoBack(); | ||||||
|  |     refreshAssetGrid = !refreshAssetGrid; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   const handleSelectFeaturePhoto = async (asset: AssetResponseDto) => { |   const handleSelectFeaturePhoto = async (asset: AssetResponseDto) => { | ||||||
|     if (viewMode !== ViewMode.SELECT_FACE) { |     if (viewMode !== ViewMode.SELECT_FACE) { | ||||||
|       return; |       return; | ||||||
| @ -302,7 +310,7 @@ | |||||||
| {/if} | {/if} | ||||||
| 
 | 
 | ||||||
| {#if viewMode === ViewMode.MERGE_FACES} | {#if viewMode === ViewMode.MERGE_FACES} | ||||||
|   <MergeFaceSelector person={data.person} on:go-back={handleGoBack} /> |   <MergeFaceSelector person={data.person} bind:people on:go-back={handleGoBack} on:merge={handleMerge} /> | ||||||
| {/if} | {/if} | ||||||
| 
 | 
 | ||||||
| <header> | <header> | ||||||
| @ -344,7 +352,7 @@ | |||||||
| </header> | </header> | ||||||
| 
 | 
 | ||||||
| <main class="relative h-screen overflow-hidden bg-immich-bg pt-[var(--navbar-height)] dark:bg-immich-dark-bg"> | <main class="relative h-screen overflow-hidden bg-immich-bg pt-[var(--navbar-height)] dark:bg-immich-dark-bg"> | ||||||
|   {#key previousPersonId} |   {#key refreshAssetGrid} | ||||||
|     <AssetGrid |     <AssetGrid | ||||||
|       {assetStore} |       {assetStore} | ||||||
|       {assetInteractionStore} |       {assetInteractionStore} | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user