diff --git a/apps/app/src/components/crowd-lists/AddPersonToCrowdListDialog.vue b/apps/app/src/components/crowd-lists/AddPersonToCrowdListDialog.vue index f4ad7df8..4372856b 100644 --- a/apps/app/src/components/crowd-lists/AddPersonToCrowdListDialog.vue +++ b/apps/app/src/components/crowd-lists/AddPersonToCrowdListDialog.vue @@ -7,7 +7,6 @@ import type { Person } from '@/types/person' const props = defineProps<{ eventId: string crowdList: CrowdList - existingPersonIds: string[] }>() const modelValue = defineModel({ required: true }) @@ -20,24 +19,21 @@ const { mutate: addPerson, isPending } = useAddPersonToCrowdList(eventIdRef) const selectedPersonId = ref(null) const showSuccess = ref(false) const successName = ref('') +const errorMessage = ref('') -const availablePersons = computed(() => { - const all = personsResponse.value?.data ?? [] - const excluded = new Set(props.existingPersonIds) - - return all - .filter((p: Person) => !excluded.has(p.id)) - .map((p: Person) => ({ - title: p.name, - value: p.id, - subtitle: p.email, - })) -}) +const personItems = computed(() => + (personsResponse.value?.data ?? []).map((p: Person) => ({ + title: p.name, + value: p.id, + subtitle: p.email, + })), +) function onSubmit() { if (!selectedPersonId.value) return - const personName = availablePersons.value.find(p => p.value === selectedPersonId.value)?.title ?? '' + errorMessage.value = '' + const personName = personItems.value.find(p => p.value === selectedPersonId.value)?.title ?? '' addPerson( { listId: props.crowdList.id, personId: selectedPersonId.value }, @@ -48,6 +44,10 @@ function onSubmit() { modelValue.value = false showSuccess.value = true }, + onError: (err: unknown) => { + const data = (err as { response?: { data?: { message?: string } } }).response?.data + errorMessage.value = data?.message ?? 'Kon persoon niet toevoegen' + }, }, ) } @@ -64,11 +64,22 @@ function onSubmit() { Voeg een persoon toe aan {{ crowdList.name }}

+ + {{ errorMessage }} + + diff --git a/apps/app/src/components/crowd-lists/CrowdListDetailPanel.vue b/apps/app/src/components/crowd-lists/CrowdListDetailPanel.vue index 7467327e..b731d62d 100644 --- a/apps/app/src/components/crowd-lists/CrowdListDetailPanel.vue +++ b/apps/app/src/components/crowd-lists/CrowdListDetailPanel.vue @@ -1,11 +1,9 @@