import { VForm } from 'vuetify/components/VForm'
import EventTabsNav from '@/components/events/EventTabsNav.vue'
-import { useUpdateEvent, useUploadEventImage } from '@/composables/api/useEvents'
+import ImageUploadField from '@/components/common/ImageUploadField.vue'
+import { useUpdateEvent } from '@/composables/api/useEvents'
import { useAuthStore } from '@/stores/useAuthStore'
import type { EventItem, UpdateEventPayload } from '@/types/event'
@@ -24,16 +25,29 @@ const settingsTab = computed(() => {
})
const { mutate: updateEvent, isPending: isUpdating } = useUpdateEvent(orgId, eventId)
-const { mutate: uploadImage, isPending: isUploading } = useUploadEventImage(orgId, eventId)
+const bannerUrl = ref
(null)
+const logoUrl = ref(null)
const welcomeText = ref('')
const showSuccess = ref(false)
const refVForm = ref()
function initForm(event: EventItem) {
+ bannerUrl.value = event.registration_banner_url ?? null
+ logoUrl.value = event.registration_logo_url ?? null
welcomeText.value = event.registration_welcome_text ?? ''
}
+function onBannerChange(url: string | null) {
+ bannerUrl.value = url
+ updateEvent({ registration_banner_url: url } as UpdateEventPayload)
+}
+
+function onLogoChange(url: string | null) {
+ logoUrl.value = url
+ updateEvent({ registration_logo_url: url } as UpdateEventPayload)
+}
+
function onSaveWelcomeText() {
updateEvent(
{ registration_welcome_text: welcomeText.value || null },
@@ -44,19 +58,6 @@ function onSaveWelcomeText() {
},
)
}
-
-function onFileSelected(files: File[], type: 'banner' | 'logo') {
- const file = files[0]
- if (!file) return
-
- uploadImage({ file, type })
-}
-
-function onClearImage(event: EventItem, type: 'banner' | 'logo') {
- const field = type === 'banner' ? 'registration_banner_url' : 'registration_logo_url'
-
- updateEvent({ [field]: null } as UpdateEventPayload)
-}
@@ -104,91 +105,28 @@ function onClearImage(event: EventItem, type: 'banner' | 'logo') {
-
- Bannerafbeelding
-
-
- Wordt bovenaan het registratieformulier getoond. Aanbevolen: 1200x400px.
-
-
-
-
-
- onFileSelected(files, 'banner')"
- />
-
- Verwijder
-
-
-
- Logo
-
-
- Wordt in de header van het registratieformulier getoond. Aanbevolen: vierkant, max 200x200px.
-
-
-
-
-
- onFileSelected(files, 'logo')"
- />
-
- Verwijder
-
-