feat: add ticket status change buttons to inline chat

Add status buttons (open/pending/answered/closed) to the ticket
chat view in admin user detail page.
This commit is contained in:
Fringg
2026-02-07 05:36:04 +03:00
parent 0b10cfecf3
commit dafa69f736

View File

@@ -199,6 +199,20 @@ export default function AdminUserDetail() {
}
};
const handleTicketStatusChange = async (newStatus: string) => {
if (!selectedTicketId) return;
setActionLoading(true);
try {
await adminApi.updateTicketStatus(selectedTicketId, newStatus);
await loadTicketDetail(selectedTicketId);
await loadTickets();
} catch (error) {
console.error('Failed to update ticket status:', error);
} finally {
setActionLoading(false);
}
};
useEffect(() => {
if (selectedTicketId) {
loadTicketDetail(selectedTicketId);
@@ -1136,6 +1150,24 @@ export default function AdminUserDetail() {
</div>
</div>
{/* Status buttons */}
<div className="flex flex-wrap gap-1.5">
{(['open', 'pending', 'answered', 'closed'] as const).map((s) => (
<button
key={s}
onClick={() => handleTicketStatusChange(s)}
disabled={selectedTicket.status === s || actionLoading}
className={`rounded-lg border px-2.5 py-1 text-xs transition-all ${
selectedTicket.status === s
? 'border-accent-500/50 bg-accent-500/20 text-accent-400'
: 'border-dark-700/50 text-dark-400 hover:border-dark-600 hover:text-dark-200'
} disabled:opacity-50`}
>
{t(`admin.tickets.status${s.charAt(0).toUpperCase() + s.slice(1)}`)}
</button>
))}
</div>
{/* Messages */}
<div className="scrollbar-hide max-h-[60vh] space-y-3 overflow-y-auto rounded-xl bg-dark-800/30 p-3">
{selectedTicket.messages.map((msg) => (