klioso
Version:
Multi-Service Provider Management System for WordPress and Web Development with Enhanced Scanner
56 lines (53 loc) • 2.36 kB
JSX
import AuthenticatedLayout from '@/Layouts/AuthenticatedLayout';
import { useForm } from '@inertiajs/react';
import Form from '@/Components/Form';
import Button from '@/Components/Button';
import BackButton from '@/Components/BackButton';
export default function Create() {
const { data, setData, post, errors } = useForm({
name: '',
description: '',
source_url: '',
notes: '',
});
return (
<AuthenticatedLayout header={<h1 className="text-2xl font-bold text-gray-800">Add Template</h1>}>
<div className="max-w-xl mx-auto bg-white rounded-lg shadow p-6 mt-8">
<div className="flex justify-between items-center mb-6">
<BackButton fallbackRoute="/templates" />
<h2 className="text-lg font-semibold">New Template</h2>
</div>
<Form onSubmit={e => { e.preventDefault(); post('/templates'); }}>
<Form.Input
label="Name"
value={data.name}
onChange={e => setData('name', e.target.value)}
required
error={errors?.name}
/>
<Form.Textarea
label="Description"
value={data.description}
onChange={e => setData('description', e.target.value)}
error={errors?.description}
/>
<Form.Input
label="Source URL"
value={data.source_url}
onChange={e => setData('source_url', e.target.value)}
placeholder="https://example.com/template"
error={errors?.source_url}
/>
<Form.Textarea
label="Notes"
value={data.notes}
onChange={e => setData('notes', e.target.value)}
error={errors?.notes}
/>
<Button type="submit">Save</Button>
</Form>
{errors && <div className="mt-4 text-red-500 text-sm">{Object.values(errors).join(', ')}</div>}
</div>
</AuthenticatedLayout>
);
}