Bilder + GSC + Posthog
This commit is contained in:
@@ -5,9 +5,20 @@ import { useRouter } from 'next/navigation'
|
||||
import { createOrganization } from './actions'
|
||||
import { LandingPagePreview } from './LandingPagePreview'
|
||||
|
||||
const initialState = { success: false, error: '' }
|
||||
|
||||
export function CreateOrgForm() {
|
||||
const initialState = { success: false, error: '' }
|
||||
|
||||
async function readUploadResponse(res: Response) {
|
||||
const data = await res.json().catch(() => null)
|
||||
if (!res.ok) {
|
||||
throw new Error(data?.error || 'Upload fehlgeschlagen')
|
||||
}
|
||||
if (!data?.url) {
|
||||
throw new Error('Upload-Antwort enthaelt keine Datei-URL')
|
||||
}
|
||||
return data as { url: string }
|
||||
}
|
||||
|
||||
export function CreateOrgForm() {
|
||||
const [state, formAction, isPending] = useActionState(createOrganization, initialState)
|
||||
const router = useRouter()
|
||||
const [step, setStep] = useState(1)
|
||||
@@ -69,20 +80,19 @@ export function CreateOrgForm() {
|
||||
const uploadFormData = new FormData()
|
||||
uploadFormData.append('file', file)
|
||||
|
||||
try {
|
||||
const res = await fetch('/api/upload', {
|
||||
method: 'POST',
|
||||
body: uploadFormData
|
||||
})
|
||||
const data = await res.json()
|
||||
if (data.url) {
|
||||
setFormData(prev => ({ ...prev, logoUrl: data.url }))
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Upload failed', err)
|
||||
} finally {
|
||||
setIsUploading(false)
|
||||
}
|
||||
try {
|
||||
const res = await fetch('/api/upload', {
|
||||
method: 'POST',
|
||||
body: uploadFormData
|
||||
})
|
||||
const data = await readUploadResponse(res)
|
||||
setFormData(prev => ({ ...prev, logoUrl: data.url }))
|
||||
} catch (err) {
|
||||
console.error('Upload failed', err)
|
||||
alert(err instanceof Error ? err.message : 'Upload fehlgeschlagen')
|
||||
} finally {
|
||||
setIsUploading(false)
|
||||
}
|
||||
}
|
||||
|
||||
const [isHeroUploading, setIsHeroUploading] = useState(false)
|
||||
@@ -98,20 +108,19 @@ export function CreateOrgForm() {
|
||||
const uploadFormData = new FormData()
|
||||
uploadFormData.append('file', file)
|
||||
|
||||
try {
|
||||
const res = await fetch('/api/upload', {
|
||||
method: 'POST',
|
||||
body: uploadFormData
|
||||
})
|
||||
const data = await res.json()
|
||||
if (data.url) {
|
||||
setFormData(prev => ({ ...prev, landingPageHeroImage: data.url }))
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Upload failed', err)
|
||||
} finally {
|
||||
setIsHeroUploading(false)
|
||||
}
|
||||
try {
|
||||
const res = await fetch('/api/upload', {
|
||||
method: 'POST',
|
||||
body: uploadFormData
|
||||
})
|
||||
const data = await readUploadResponse(res)
|
||||
setFormData(prev => ({ ...prev, landingPageHeroImage: data.url }))
|
||||
} catch (err) {
|
||||
console.error('Upload failed', err)
|
||||
alert(err instanceof Error ? err.message : 'Upload fehlgeschlagen')
|
||||
} finally {
|
||||
setIsHeroUploading(false)
|
||||
}
|
||||
}
|
||||
|
||||
const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement>) => {
|
||||
|
||||
Reference in New Issue
Block a user