diff --git a/apps/web/src/pages/editing-planner/components/PipConfigPanel/index.tsx b/apps/web/src/pages/editing-planner/components/PipConfigPanel/index.tsx new file mode 100644 index 000000000..118b15a57 --- /dev/null +++ b/apps/web/src/pages/editing-planner/components/PipConfigPanel/index.tsx @@ -0,0 +1,106 @@ +/** + * 混剪配置面板 — Drawer 形式 + * 左侧图层列表 + 右侧单图层配置 + 迷你预览区 + */ +import React from "react" +import { Drawer, Switch } from "antd" +import type { PipConfig } from "../types" + +import { usePipConfigPanel } from "./hooks/usePipConfigPanel" +import { LayerList } from "./components/LayerList" +import { PipPreview } from "./components/PipPreview" +import { LayerConfig } from "./components/LayerConfig" + +export interface PipConfigPanelProps { + open: boolean + onClose: () => void + config: PipConfig + onChange: (config: PipConfig) => void + totalDuration: number +} + +const PipConfigPanel: React.FC = ({ + open, + onClose, + config, + onChange, + totalDuration, +}) => { + const { + selectedId, + setSelectedId, + selectedLayer, + handleAddLayer, + handleDeleteLayer, + updateLayer, + handleEnableToggle, + handleReset, + handleGridClick, + handleWidthChange, + handleHeightChange, + } = usePipConfigPanel({ config, onChange }) + + return ( + + {/* ═══ 顶部工具栏 ═══ */} +
+
+ +
+
+ 启用 + +
+
+ + {/* ═══ 主体:图层列表 + 配置区 ═══ */} +
+ {/* 左侧图层列表 */} + + + {/* 右侧配置区 */} + {!selectedLayer ? ( +
+
选择或添加图层以配置
+
+ ) : ( + <> + + + + )} +
+ + {/* ── 底部操作 ── */} +
+ +
+
+ ) +} + +export default PipConfigPanel +export type { PipConfigPanelProps }