diff --git a/src/modules/lesson-preparation/components/detail-panel/detail-panel.tsx b/src/modules/lesson-preparation/components/detail-panel/detail-panel.tsx new file mode 100644 index 0000000..cccecf1 --- /dev/null +++ b/src/modules/lesson-preparation/components/detail-panel/detail-panel.tsx @@ -0,0 +1,111 @@ +"use client"; + +import { useTranslations } from "next-intl"; +import { useLessonPlanEditor } from "../../hooks/use-lesson-plan-editor"; +import { DetailHead } from "./detail-head"; +import { DetailProps } from "./detail-props"; +import { QaEditor } from "./qa-editor"; +import { BlockRenderer } from "../../config/block-registry"; +import type { InteractionBlockData, LessonPlanNode } from "../../types"; + +export function DetailPanel() { + const t = useTranslations("lessonPreparation"); + const doc = useLessonPlanEditor((s) => s.doc); + const selectedNodeId = useLessonPlanEditor((s) => s.selectedNodeId); + const expandedNodeIds = useLessonPlanEditor((s) => s.expandedNodeIds); + const updateNode = useLessonPlanEditor((s) => s.updateNode); + + const node = doc.nodes.find( + (n): n is LessonPlanNode => n.id === selectedNodeId && n.type !== "textbook_content", + ); + + if (!node) { + return ( + + ); + } + + const isExpanded = expandedNodeIds.includes(node.id); + + return ( + + ); +} + +function AiButton({ label }: { label: string }) { + return ( + + {label} + + ); +}