"use client" import React, { useState, useEffect, useRef } from "react" import { useSortable } from "@dnd-kit/sortable" import { CSS } from "@dnd-kit/utilities" import { GripVertical, Settings, X, Eye, EyeOff } from "lucide-react" import { Button } from "@/components/common/button" import { cn } from "@/lib/utils/styles" import { WidgetConfig } from "@/lib/types/dashboard" interface DraggableWidgetProps { widget: WidgetConfig children: React.ReactNode isEditMode: boolean onRemove?: () => void onConfigure?: () => void onToggleVisibility?: () => void } export function DraggableWidget({ widget, children, isEditMode, onRemove, onConfigure, onToggleVisibility }: DraggableWidgetProps) { const { attributes, listeners, setNodeRef, transform, transition, isDragging, } = useSortable({ id: widget.id }) const style = { transform: CSS.Transform.toString(transform), transition, opacity: isDragging ? 0.5 : 1, zIndex: isDragging ? 1000 : 1, } return (