import { useCutsceneStore, useSelectedCutscene } from '../../store/cutsceneStore'; import type { Cutscene } from '../../types/cutscene'; import styles from './RightPanel.module.css'; type CutscenePatch = Partial>; function NumField({ label, value, onChange, min }: { label: string; value: number; onChange: (v: number) => void; min?: number; }) { return (
onChange(Number(e.target.value))} />
); } export default function CutsceneProperties() { const cutscene = useSelectedCutscene(); const updateCutscene = useCutsceneStore(s => s.updateCutscene); if (!cutscene) return
No cutscene selected
; function upd(patch: CutscenePatch) { updateCutscene(cutscene!.id, patch); } return (
Cutscene
upd({ id: e.target.value })} />
upd({ skippable: e.target.checked })} />
upd({ durationMs: v })} min={0} /> upd({ fadeOutMs: v })} min={0} /> upd({ fadeInMs: v })} min={0} /> upd({ endFadeOutMs: v })} min={0} /> upd({ endFadeInMs: v })} min={0} />
upd({ onFadeInCallback: e.target.value })} placeholder="lua function name" />
); }