"use client"; import { useEffect, useState } from "react"; import { Info } from "lucide-react"; import { useTranslations } from "next-intl"; import { useStudioStore } from "@/lib/studio-store"; import type { SceneTransition } from "@/lib/studio-types"; import { cn } from "@/lib/utils"; const TRANSITION_OPTIONS = [ { id: "random", label: "Random Transition", description: "Random", gradientFrom: "#3b82f6", gradientTo: "#8b5cf6", }, { id: "none", label: "No Transition", description: "None", gradientFrom: "#374151", gradientTo: "#1f2937", }, ] as const; type TransitionOptionId = (typeof TRANSITION_OPTIONS)[number]["id"]; function scenesUseTransition(scenes: { transitionType?: SceneTransition }[]): boolean { return scenes.some((scene) => (scene.transitionType ?? "none") !== "none"); } function optionToTransitionType(id: TransitionOptionId): SceneTransition { return id === "random" ? "fade" : "none"; } function TransitionOptionCard({ option, label, selected, onSelect, }: { option: (typeof TRANSITION_OPTIONS)[number]; label: string; selected: boolean; onSelect: () => void; }) { return ( ); } export function TransitionsSidebarContent() { const t = useTranslations("auto.componentsStudioSidebarTransitionsSidebarContent"); const scenes = useStudioStore((state) => state.scenes); const applyTransitionToAllScenes = useStudioStore( (state) => state.applyTransitionToAllScenes ); const [selectedOption, setSelectedOption] = useState(() => scenesUseTransition(scenes) ? "random" : "none" ); useEffect(() => { setSelectedOption(scenesUseTransition(scenes) ? "random" : "none"); }, [scenes]); const handleSelect = (id: TransitionOptionId) => { setSelectedOption(id); applyTransitionToAllScenes(optionToTransitionType(id)); }; return ( ); }