return updated selectedPeople with onClose

pull/22028/head
Daniel Procházka 2025-12-05 00:18:02 +07:00
parent 833b231a8a
commit 727bb6ccdc
2 changed files with 21 additions and 10 deletions

@ -76,6 +76,15 @@
handleError(error, $t('cannot_merge_people'));
}
};
const showPeopleViewModal = async () => {
// Sets the selected people that remained after closing the modal.
selectedPeople = await modalManager.show(PeopleViewModal, {
people: selectedPeople,
peopleToNotShow: [person],
screenHeight
});
};
</script>
<svelte:window bind:innerHeight={screenHeight} />
@ -123,12 +132,7 @@
aria-label={$t('show_all_selected_people')}
icon={mdiPlus}
size="medium"
onclick={() => modalManager.show(PeopleViewModal, {
people: peopleToNotShow,
peopleToNotShow: [person],
screenHeight,
onSelect
})}
onclick={showPeopleViewModal}
/>
</div>
{/if}

@ -8,15 +8,22 @@
people: PersonResponseDto[];
peopleToNotShow: PersonResponseDto[];
screenHeight: number;
onSelect: (person: PersonResponseDto) => void;
onClose: () => void;
onClose: (people: PersonResponseDto[]) => void;
}
let { people, peopleToNotShow, screenHeight, onSelect, onClose }: Props = $props();
let { people, peopleToNotShow, screenHeight, onClose }: Props = $props();
// Hides the selected person.
const onSelect = (selected: PersonResponseDto) => {
if (people.includes(selected)) {
people = people.filter((person) => person.id !== selected.id);
return;
}
};
</script>
<Modal title={$t('selected_people_to_merge')} size="full" {onClose}>
<Modal title={$t('selected_people_to_merge')} size="full" onClose={() => onClose(people)}>
<ModalBody>
<p class="mb-4 text-center dark:text-white">{$t('choose_people_to_unselect')}</p>
<PeopleList {people} {peopleToNotShow} {screenHeight} {onSelect} />