import React, { useState } from "react"; import { supabase } from "../../supabaseClient"; import { Button } from "../UI/Button"; import { CallDateSelect, CallTimeSelect, toDateInputValue, toTimeInputValue } from "./CallDateTime"; const CalledPanel = ({ order, onUpdate }) => { const [busy, setBusy] = useState(false); const [editing, setEditing] = useState(false); const [comment, setComment] = useState(order?.calledComment || order?.called_comment || ""); const [callDate, setCallDate] = useState(""); const [callTime, setCallTime] = useState(""); const isCalled = !!order?.called; const formatCalledAt = (ts) => { if (!ts) return ""; try { return new Date(ts).toLocaleString("ru-RU", { day: "2-digit", month: "2-digit", year: "numeric", hour: "2-digit", minute: "2-digit", }); } catch { return ""; } }; // Open add form with date+time defaulted to NOW for fast entry. const startAdd = () => { const now = new Date(); setComment(""); setCallDate(toDateInputValue(now)); setCallTime(toTimeInputValue(now)); setEditing(true); }; // Open edit form for an existing call, pre-filled from stored values (or now). const startEdit = () => { setComment(order?.calledComment || order?.called_comment || ""); if (order?.calledAt || order?.called_at) { const d = new Date(order.calledAt || order.called_at); setCallDate(toDateInputValue(d)); setCallTime(toTimeInputValue(d)); } else { const now = new Date(); setCallDate(toDateInputValue(now)); setCallTime(toTimeInputValue(now)); } setEditing(true); }; const save = async (newCalled) => { if (busy || !order?.id) return; setBusy(true); try { let calledAt = null; if (newCalled) { if (callDate && callTime) { calledAt = new Date(`${callDate}T${callTime}:00`).toISOString(); } else { calledAt = new Date().toISOString(); } } const { error } = await supabase .from("order_groups") .update({ called: newCalled, called_at: calledAt, called_comment: newCalled ? (comment.trim() || null) : null, }) .eq("id", order.id); if (error) { console.warn("[CalledPanel] update error", error); } else { setEditing(false); if (onUpdate) await onUpdate(); } } finally { setBusy(false); } }; // Editing form: app-styled date/time pickers + comment + save/reset/cancel. if (editing) { return (