import React, { useEffect, useMemo, useRef, useState } from 'react' import { createPortal } from 'react-dom' import { Head, Link, router, useForm } from '@inertiajs/react' import AdminLayout from '../../../Layouts/AdminLayout' import RichTextEditor from '../../../components/forum/RichTextEditor' import WorldMediaUploadField from '../../../components/worlds/editor/WorldMediaUploadField' import DateTimePicker from '../../../components/ui/DateTimePicker' import NovaSelect from '../../../components/ui/NovaSelect' function getField(fields, name) { return fields.find((field) => field.name === name) || null } const LESSON_SECTION_NAV_ITEMS = [ { id: 'lesson-story-setup', label: 'Story setup' }, { id: 'lesson-body-editor', label: 'Main article' }, { id: 'lesson-ai-comparisons', label: 'AI comparisons' }, { id: 'lesson-publishing', label: 'Publishing' }, { id: 'lesson-seo', label: 'SEO' }, { id: 'lesson-categories', label: 'Categories' }, { id: 'lesson-cover', label: 'Cover image' }, { id: 'lesson-preview', label: 'Preview' }, ] let comparisonEditorSequence = 0 function nextComparisonEditorKey(prefix) { comparisonEditorSequence += 1 return `${prefix}-${comparisonEditorSequence}` } function FieldError({ message }) { if (!message) return null return
{message}
} function SectionCard({ id, eyebrow, title, description, actions, children, tone = 'default' }) { const toneClass = tone === 'feature' ? 'bg-[radial-gradient(circle_at_top_left,rgba(56,189,248,0.16),transparent_38%),linear-gradient(180deg,rgba(15,23,42,0.96),rgba(2,6,23,0.92))] shadow-[0_24px_70px_rgba(2,6,23,0.28)]' : 'bg-white/[0.03]' return ({eyebrow}
: null}{description}
: null}