import React, { useEffect, useMemo, useState } from 'react' import { Link } from 'react-router-dom' import FormActionBar from '../FormActionBar' import TrainingPlanExerciseVisibilityPanel from '../TrainingPlanExerciseVisibilityPanel' import TrainingUnitSectionsEditor from '../TrainingUnitSectionsEditor' import { activeClubMemberships } from '../../utils/activeClub' import { frameworkLineageText } from '../../utils/trainingPlanningPageHelpers' /** * Großes Modal: Neue Trainingseinheit / Einheit bearbeiten (Planung, Trainer, Abschnitte, Durchführung, Notizen). */ export default function TrainingPlanningUnitFormModal({ open, editingUnit, formData, updateFormField, setFormData, onSubmit, onSaveOnly, onSaveAndClose, onCancel, draftPlanTemplateId, onDraftTemplateSelect, planTemplates, clubDirectory, clubDirectoryForCo, planningModalClubId, user, onMetaRefresh, sectionsEditMode, setSectionsEditMode, onSaveAsTemplate, onRequestPublishToFramework, onRequestSaveAsModule, onRequestTrainingModulePick, onRequestExercisePick, onPeekExercise, }) { const [newTplVisibility, setNewTplVisibility] = useState('private') const [newTplClubId, setNewTplClubId] = useState('') const memberClubs = useMemo(() => activeClubMemberships(user?.clubs), [user?.clubs]) const roleLc = String(user?.role || '').toLowerCase() const isSuperadmin = roleLc === 'superadmin' useEffect(() => { if (!open) return if (planningModalClubId != null && planningModalClubId !== '') { setNewTplClubId(String(planningModalClubId)) } else if (memberClubs.length === 1) { setNewTplClubId(String(memberClubs[0].id)) } }, [open, planningModalClubId, memberClubs]) if (!open) return null const formId = 'planning-unit-form' return (