2024-02-14 06:38:57 -08:00
|
|
|
import type { PersonResponseDto } from '@immich/sdk';
|
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
|
|
|
|
|
|
|
|
export const getPersonNameWithHiddenValue = (name: string, isHidden: boolean) => {
|
|
|
|
|
return `${name ? name + (isHidden ? ' ' : '') : ''}${isHidden ? '(hidden)' : ''}`;
|
|
|
|
|
};
|