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 @@