File tree 5 files changed +30
-35
lines changed
lib/components/faces-page
[personId]/[[photos=photos]]/[[assetId=id]]
5 files changed +30
-35
lines changed Original file line number Diff line number Diff line change 30
30
}>();
31
31
32
32
$ : hasSelection = selectedPeople .length > 0 ;
33
- $ : unselectedPeople = people .filter (
34
- (source ) => ! selectedPeople .some ((selected ) => selected .id === source .id ) && source .id !== person .id ,
35
- );
33
+ $ : peopleToNotShow = [... selectedPeople , person ];
36
34
37
35
onMount (async () => {
38
36
const data = await getAllPeople ({ withHidden: false });
150
148
</div >
151
149
</div >
152
150
153
- <PeopleList
154
- people ={unselectedPeople }
155
- peopleCopy ={unselectedPeople }
156
- unselectedPeople ={selectedPeople }
157
- {screenHeight }
158
- on:select ={({ detail }) => onSelect (detail )}
159
- />
151
+ <PeopleList {people } {peopleToNotShow } {screenHeight } on:select ={({ detail }) => onSelect (detail )} />
160
152
</section >
161
153
162
154
{#if isShowConfirmation }
Original file line number Diff line number Diff line change 6
6
7
7
export let screenHeight: number ;
8
8
export let people: PersonResponseDto [];
9
- export let peopleCopy : PersonResponseDto [];
10
- export let unselectedPeople : PersonResponseDto [];
9
+ export let peopleToNotShow : PersonResponseDto [];
10
+ let searchedPeopleLocal : PersonResponseDto [] = [];
11
11
12
12
let name = ' ' ;
13
13
let showPeople: PersonResponseDto [];
17
17
}>();
18
18
19
19
$ : {
20
- showPeople = people .filter (
21
- (person ) => ! unselectedPeople .some ((unselectedPerson ) => unselectedPerson .id === person .id ),
20
+ showPeople = name ? searchedPeopleLocal : people ;
21
+ showPeople = showPeople .filter (
22
+ (person ) => ! peopleToNotShow .some ((unselectedPerson ) => unselectedPerson .id === person .id ),
22
23
);
23
24
}
24
25
</script >
25
26
26
27
<div class =" w-40 sm:w-48 md:w-96 h-14 mb-8" >
27
- <SearchPeople
28
- type =" searchBar"
29
- placeholder =" Search people"
30
- bind:searchName ={name }
31
- bind:searchedPeopleLocal ={people }
32
- onReset ={() => (people = peopleCopy )}
33
- />
28
+ <SearchPeople type ="searchBar" placeholder ="Search people" bind:searchName ={name } bind:searchedPeopleLocal />
34
29
</div >
35
30
36
31
<div
Original file line number Diff line number Diff line change 31
31
let hasSelection = false ;
32
32
let screenHeight: number ;
33
33
34
- $ : unselectedPeople = selectedPerson
35
- ? people .filter ((person ) => selectedPerson && person .id !== selectedPerson .id && personAssets .id !== person .id )
36
- : people ;
34
+ $ : peopleToNotShow = selectedPerson ? [personAssets , selectedPerson ] : [personAssets ];
37
35
38
36
let dispatch = createEventDispatcher <{
39
37
confirm: void ;
178
176
</div >
179
177
</div >
180
178
{/if }
181
- <PeopleList
182
- people ={unselectedPeople }
183
- peopleCopy ={unselectedPeople }
184
- unselectedPeople ={selectedPerson ? [selectedPerson , personAssets ] : [personAssets ]}
185
- {screenHeight }
186
- on:select ={({ detail }) => handleSelectedPerson (detail )}
187
- />
179
+ <PeopleList {people } {peopleToNotShow } {screenHeight } on:select ={({ detail }) => handleSelectedPerson (detail )} />
188
180
</section >
189
181
</section >
190
182
</section >
Original file line number Diff line number Diff line change 60
60
let edittingPerson: PersonResponseDto | null = null ;
61
61
let searchedPeopleLocal: PersonResponseDto [] = [];
62
62
let handleSearchPeople: (force ? : boolean , name ? : string ) => Promise <void >;
63
+ let showPeople: PersonResponseDto [] = [];
64
+ let countVisiblePeople: number ;
63
65
64
66
let innerHeight: number ;
65
67
66
68
for (const person of people ) {
67
69
initialHiddenValues [person .id ] = person .isHidden ;
68
70
}
69
- $ : showPeople = searchName ? searchedPeopleLocal : people .filter ((person ) => ! person .isHidden );
70
- $ : countVisiblePeople = countTotalPeople - countHiddenPeople ;
71
+ $ : {
72
+ if (searchName ) {
73
+ showPeople = searchedPeopleLocal ;
74
+ countVisiblePeople = searchedPeopleLocal .length ;
75
+ } else {
76
+ showPeople = people .filter ((person ) => ! person .isHidden );
77
+ countVisiblePeople = countTotalPeople - countHiddenPeople ;
78
+ }
79
+ }
71
80
72
81
onMount (async () => {
73
82
const getSearchedPeople = $page .url .searchParams .get (QueryParameter .SEARCHED_PEOPLE );
382
391
383
392
<UserPageLayout
384
393
title =" People"
385
- description ={countVisiblePeople === 0 ? undefined : ` (${countVisiblePeople .toLocaleString ($locale )}) ` }
394
+ description ={countVisiblePeople === 0 && ! searchName ? undefined : ` (${countVisiblePeople .toLocaleString ($locale )}) ` }
386
395
>
387
396
<svelte:fragment slot =" buttons" >
388
397
{#if countTotalPeople > 0 }
Original file line number Diff line number Diff line change 31
31
import { assetViewingStore } from ' $lib/stores/asset-viewing.store' ;
32
32
import { AssetStore } from ' $lib/stores/assets.store' ;
33
33
import { websocketEvents } from ' $lib/stores/websocket' ;
34
- import { getPeopleThumbnailUrl } from ' $lib/utils' ;
34
+ import { getPeopleThumbnailUrl , handlePromiseError } from ' $lib/utils' ;
35
35
import { clickOutside } from ' $lib/utils/click-outside' ;
36
36
import { handleError } from ' $lib/utils/handle-error' ;
37
37
import { isExternalUrl } from ' $lib/utils/navigation' ;
137
137
return ;
138
138
}
139
139
};
140
+
141
+ const handleRefreshStats = async () => {
142
+ const { assets } = await getPersonStatistics ({ id: data .person .id });
143
+ numberOfAssets = assets ;
144
+ };
145
+
140
146
afterNavigate (({ from }) => {
141
147
// Prevent setting previousRoute to the current page.
142
148
if (from && from .route .id !== $page .route .id ) {
143
149
previousRoute = from .url .href ;
144
150
}
145
151
if (previousPersonId !== data .person .id ) {
152
+ handlePromiseError (handleRefreshStats ());
146
153
assetStore = new AssetStore ({
147
154
isArchived: false ,
148
155
personId: data .person .id ,
You can’t perform that action at this time.
0 commit comments