import React, { useState } from 'react'; import { Settings2, X, AlertTriangle, Clock } from 'lucide-react'; import { Column } from '../types/index.js'; import { soundFx } from '../utils/sound.js'; import { useTranslation } from '../utils/i18n.js'; interface ColumnSettingsModalProps { column: Column; onClose: () => void; onSave: (columnId: string, updates: { title: string; maxWipLimit: number; autoStaleHours: number }) => void; } export const ColumnSettingsModal: React.FC = ({ column, onClose, onSave }) => { const { t } = useTranslation(); const [title, setTitle] = useState(column.title); const [maxWipLimit, setMaxWipLimit] = useState(column.maxWipLimit || 0); const [autoStaleHours, setAutoStaleHours] = useState(column.autoStaleHours || 0); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); soundFx.playClick(); onSave(column.id, { title: title.trim() || column.title, maxWipLimit: Number(maxWipLimit) || 0, autoStaleHours: Number(autoStaleHours) || 0, }); onClose(); }; return (

{t('editColSettings')}

{column.title}

{/* Column Title */}
setTitle(e.target.value)} className="w-full bg-slate-50 dark:bg-slate-950/70 border border-slate-300 dark:border-slate-800 rounded-lg p-2.5 text-slate-900 dark:text-slate-100 text-xs outline-none focus:border-indigo-500" required />
{/* WIP Limit Setting */}

Membatasi jumlah kartu aktif di kolom ini agar tim fokus menyelesaikan tugas sebelum mengambil yang baru.

setMaxWipLimit(parseInt(e.target.value, 10) || 0)} className="w-20 sm:w-24 bg-white dark:bg-slate-900 border border-slate-300 dark:border-slate-800 rounded-lg p-2 text-slate-900 dark:text-slate-100 text-xs text-center outline-none" /> {maxWipLimit === 0 ? `(${t('wipUnlimited')})` : `(Maks. ${maxWipLimit} kartu)`}
{/* Auto-Stale Hours Setting */}

Memberikan tanda peringatan jika kartu tidak bergerak di kolom ini melebihi durasi yang ditentukan.

); };