2024-02-14 06:38:57 -08:00
|
|
|
import type { PersonResponseDto } from '@immich/sdk';
|
2024-06-24 15:50:01 +02:00
|
|
|
import { t } from 'svelte-i18n';
|
2024-07-05 15:06:35 +02:00
|
|
|
import { derived } from 'svelte/store';
|
2023-11-30 04:08:54 +01:00
|
|
|
|
|
|
|
|
export const searchNameLocal = (
|
|
|
|
|
name: string,
|
|
|
|
|
people: PersonResponseDto[],
|
|
|
|
|
slice: number,
|
|
|
|
|
personId?: string,
|
|
|
|
|
): PersonResponseDto[] => {
|
2024-02-02 04:18:00 +01:00
|
|
|
return name.includes(' ')
|
2023-11-30 04:08:54 +01:00
|
|
|
? people
|
|
|
|
|
.filter((person: PersonResponseDto) => {
|
2024-02-02 04:18:00 +01:00
|
|
|
return personId
|
|
|
|
|
? person.name.toLowerCase().startsWith(name.toLowerCase()) && person.id !== personId
|
|
|
|
|
: person.name.toLowerCase().startsWith(name.toLowerCase());
|
2023-11-30 04:08:54 +01:00
|
|
|
})
|
|
|
|
|
.slice(0, slice)
|
|
|
|
|
: people
|
|
|
|
|
.filter((person: PersonResponseDto) => {
|
|
|
|
|
const nameParts = person.name.split(' ');
|
2024-02-02 04:18:00 +01:00
|
|
|
return personId
|
|
|
|
|
? nameParts.some((splitName) => splitName.toLowerCase().startsWith(name.toLowerCase())) &&
|
|
|
|
|
person.id !== personId
|
|
|
|
|
: nameParts.some((splitName) => splitName.toLowerCase().startsWith(name.toLowerCase()));
|
2023-11-30 04:08:54 +01:00
|
|
|
})
|
|
|
|
|
.slice(0, slice);
|
|
|
|
|
};
|
2023-12-05 16:43:15 +01:00
|
|
|
|
2024-07-05 15:06:35 +02:00
|
|
|
export const getPersonNameWithHiddenValue = derived(t, ($t) => {
|
|
|
|
|
return (name: string, isHidden: boolean) => $t('person_hidden', { values: { name: name, hidden: isHidden } });
|
|
|
|
|
});
|