import React from 'react' import { router, useForm, usePage } from '@inertiajs/react' import StudioLayout from '../../Layouts/StudioLayout' import DateTimePicker from '../../components/ui/DateTimePicker' import NovaSelect from '../../components/ui/NovaSelect' function normalizeIds(values) { return Array.from(values || []).map((option) => Number(option.value)).filter((value) => Number.isFinite(value) && value > 0) } export default function StudioGroupProjectEditor() { const { props } = usePage() const project = props.project || null const form = useForm({ title: project?.title || '', summary: project?.summary || '', description: project?.description || '', visibility: project?.visibility || props.visibilityOptions?.[0]?.value || 'public', status: project?.status || props.statusOptions?.[0]?.value || 'planned', start_date: project?.start_date || '', target_date: project?.target_date || '', lead_user_id: project?.lead?.id || '', linked_collection_id: project?.linked_collection?.id || '', linked_featured_artwork_id: '', pinned_post_id: project?.pinned_post?.id || '', member_user_ids: Array.isArray(project?.team) ? project.team.map((member) => member.id) : [], cover_file: null, }) const artworkAttach = useForm({ artwork_id: '' }) const assetAttach = useForm({ asset_id: '' }) const statusForm = useForm({ status: project?.status || props.statusOptions?.[0]?.value || 'planned' }) const milestoneForm = useForm({ title: '', summary: '', status: 'pending', due_date: '', owner_user_id: '', notes: '' }) const submit = (event) => { event.preventDefault() const options = { forceFormData: true, preserveScroll: true } if (props.updateUrl) { form.post(props.updateUrl, { ...options, _method: 'patch' }) return } form.post(props.storeUrl, options) } return (
form.setData('title', event.target.value)} placeholder="Project title" className="rounded-2xl border border-white/10 bg-black/20 px-4 py-3 text-white outline-none" />