import Combobox from '@/components/combobox'; import InputError from '@/components/input-error'; import LoadingButton from '@/components/loading-button'; import { Card } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { Textarea } from '@/components/ui/textarea'; import courseLanguages from '@/data/course-languages'; import DashboardLayout from '@/layouts/dashboard/layout'; import { onHandleChange } from '@/lib/inertia'; import { useForm, usePage } from '@inertiajs/react'; import { ReactNode, useMemo } from 'react'; import { Editor } from 'richtor'; import 'richtor/styles'; import { CourseUpdateProps } from '../update'; const Basic = () => { const { props } = usePage(); const { auth, system, tab, labels, categories, course, instructors, translate } = props; const { input, button, common } = translate; const { data, setData, post, errors, processing } = useForm({ tab: tab, title: course.title, short_description: course.short_description, description: course.description, status: course.status, level: course.level, language: course.language, instructor_id: course.instructor_id, drip_content: Boolean(course.drip_content), course_category_id: course.course_category_id, course_category_child_id: course.course_category_child_id, }); // Handle form submission const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); post(route('courses.update', { id: course.id })); }; const transformedCategories = useMemo(() => { return categories.flatMap((category) => { // Parent categories const categoryItem = { id: category.id, label: category.title, value: category.title, child_id: '', }; // Child categories const childItems = category.category_children?.map((child) => ({ id: child.course_category_id, label: `--${child.title}`, value: child.title, child_id: child.id, })) || []; return [categoryItem, ...childItems]; // Combine parent + children }); }, [categories]); const transformedInstructors = instructors?.map((instructor) => ({ label: instructor.user.name, value: instructor.id as string, })); let selectedCategory: any; categories.map((category) => { if (course.course_category_child_id) { category.category_children?.map((child) => { if (child.id === data.course_category_child_id) { selectedCategory = child; return; } }); } else { if (category.id === data.course_category_id) { selectedCategory = category; return; } } }); return (
onHandleChange(e, setData)} placeholder={input.title_placeholder} />