import { ChevronDown, Eye, EyeOff, RotateCcw, Save, Wand2 } from "lucide-react" import { useTranslation } from "react-i18next" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { useModal } from "@/features/modals/services" import { useColorGradingContext } from "../../services/color-grading-provider" import { getAllPresetCategories } from "../../types/presets" export function ColorGradingControls() { const { t } = useTranslation() const { openModal } = useModal() const { state, hasChanges, resetAll, togglePreview, applyToClip, loadPreset, savePreset, autoCorrect, availablePresets, dispatch, } = useColorGradingContext() const handleSavePreset = () => { openModal("color-grading", { onSave: savePreset, }) } // Группируем пресеты по категориям const presetCategories = getAllPresetCategories() const presetsByCategory = presetCategories.reduce>((acc, category) => { acc[category] = availablePresets.filter((preset) => preset.category === category) return acc }, {}) return (
{/* Левые кнопки - управление пресетами */}
{presetCategories.map((category) => (
{t(`colorGrading.presets.categories.${category}`, category)} {presetsByCategory[category].map((preset) => ( loadPreset(preset.id)} > {preset.name} {preset.description && {preset.description}} ))} {category !== presetCategories[presetCategories.length - 1] && ( )}
))}
{/* Правые кнопки - применение */}
) }