"use client"; import type { Layer } from "@pien-studio/types"; import Image from "next/image"; import { Eye, EyeOff } from "lucide-react"; import { useTranslations } from "../../hooks/use-translations"; import { panelClass, panelCounterClass, panelInsetClass, panelTitleClass } from "../../lib/theme"; const EFFECT_LABELS: Record = { "face-blur": "Face Blur", }; type Props = { layers: Layer[]; selectedLayerId: string | null; isDark: boolean; onSelectLayer: (layerId: string) => void; onSetLayerVisible: (layerId: string, visible: boolean) => void; onSetEffectEnabled: (layerId: string, kind: string, enabled: boolean) => void; onMoveLayerOrder: (direction: "up" | "down") => void; onRemoveSelectedLayer: () => void; onAddLayer?: () => void; }; export function LayersPanel({ layers, selectedLayerId, isDark, onSelectLayer, onSetLayerVisible, onSetEffectEnabled, onMoveLayerOrder, onRemoveSelectedLayer, onAddLayer }: Props) { const { t } = useTranslations(); return (

{t("editor.layers")}

{onAddLayer ? ( ) : null} {layers.length}
{layers.slice().reverse().map((layer, idx) => { const isSelected = layer.id === selectedLayerId; const isRaster = layer.type === "raster" || layer.type === "sticker"; const hasEffects = layer.effects.length > 0; const isHidden = layer.visible === false; return (
{/* Thumbnail */} {/* Info */} {/* Visibility toggle */} {/* Layer index */} {layers.length - idx}
{/* Effects chips */} {hasEffects ? (
{layer.effects.map((effect) => { const isDisabled = effect.enabled === false; return ( ); })}
) : null}
); })} {layers.length === 0 ? (
{t("editor.noLayersYet")}
) : null}
); }