diff --git a/frontend/src/components/TrainingUnitSectionsEditor.jsx b/frontend/src/components/TrainingUnitSectionsEditor.jsx index c11ae35..c0cf4c3 100644 --- a/frontend/src/components/TrainingUnitSectionsEditor.jsx +++ b/frontend/src/components/TrainingUnitSectionsEditor.jsx @@ -25,7 +25,7 @@ import { swapAdjacentPhaseRuns, reorderBlocksImmutableWithPlanLoc, reorderSectionBeforeParallelRunAsWholeGroup, - reorderSectionAsFirstInParallelPhase, + reorderSectionAsFirstInParallelStream, reorderBlockIntoParallelStreamEnd, globalInsertBeforeIndexForParallelStreamEnd, movePhaseRunUpByPhaseOrder, @@ -744,7 +744,7 @@ export default function TrainingUnitSectionsEditor({ setDropSectionBand({ slot: sectionToSlot, phaseAboveSplitPo: Number(po) || 0 }) } - const onPhaseBelowSplitDragOver = (e, po) => { + const onPhaseBelowSplitDragOver = (e, po, so) => { if (!enableSectionDragReorder || !enableParallelPhaseControls) return if (!dtHasType(e, DND_TU_SECTION)) return e.preventDefault() @@ -754,7 +754,10 @@ export default function TrainingUnitSectionsEditor({ } catch { /* ignore */ } - setDropSectionBand({ slot: sectionToSlot, phaseBelowSplitPo: Number(po) || 0 }) + setDropSectionBand({ + slot: sectionToSlot, + phaseBelowSplit: { po: Number(po) || 0, so: Number(so) || 0 }, + }) } const applyParsedSectionDrop = (data) => { @@ -824,7 +827,7 @@ export default function TrainingUnitSectionsEditor({ }) } - const onPhaseBelowSplitDrop = (e, po) => { + const onPhaseBelowSplitDrop = (e, po, so) => { if (!enableSectionDragReorder || !enableParallelPhaseControls) return e.preventDefault() e.stopPropagation() @@ -843,6 +846,7 @@ export default function TrainingUnitSectionsEditor({ return } const targetPo = Number(po) || 0 + const targetSo = Number(so) || 0 const parsed = applyParsedSectionDrop(data) if (!parsed) return @@ -864,7 +868,7 @@ export default function TrainingUnitSectionsEditor({ const { fromSi } = parsed patch((prev) => { - let next = reorderSectionAsFirstInParallelPhase(prev, fromSi, targetPo) + let next = reorderSectionAsFirstInParallelStream(prev, fromSi, targetPo, targetSo) if (enableParallelPhaseControls) next = afterSectionReorderParallelGuard(prev, next) return next }) @@ -1383,7 +1387,7 @@ export default function TrainingUnitSectionsEditor({ dropSectionBand.beforeIdx === bx && !dropSectionBand.streamDrop && dropSectionBand.phaseAboveSplitPo == null && - dropSectionBand.phaseBelowSplitPo == null + !dropSectionBand.phaseBelowSplit const streamChipDropActive = (po, so) => useStreamTagDropUx && @@ -1398,7 +1402,8 @@ export default function TrainingUnitSectionsEditor({ const phaseBelowSplitDnd = parallelPhaseOrder != null && dropSectionBand?.slot === sectionToSlot && - dropSectionBand?.phaseBelowSplitPo === parallelPhaseOrder + dropSectionBand?.phaseBelowSplit?.po === parallelPhaseOrder && + dropSectionBand?.phaseBelowSplit?.so === activeParallelStream const streamVisual = enableParallelPhaseControls && pl?.phaseKind === 'parallel' @@ -1622,22 +1627,6 @@ export default function TrainingUnitSectionsEditor({ + Abschnitt in diesem Stream - {enableSectionDragReorder ? ( -