From 8fb88e9349590f04bfe0f83fd6d97475ecb7bec6 Mon Sep 17 00:00:00 2001 From: 1tzEmerald Date: Wed, 19 Aug 2026 22:27:07 +0100 Subject: [PATCH] Fixed opening tickets --- dashboard/src/api/client.ts | 2 ++ dashboard/src/pages/Tickets.tsx | 20 +++++++++++++++++--- package-lock.json | 6 ++++++ 3 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 package-lock.json diff --git a/dashboard/src/api/client.ts b/dashboard/src/api/client.ts index 32a1890..66d0a47 100644 --- a/dashboard/src/api/client.ts +++ b/dashboard/src/api/client.ts @@ -338,6 +338,8 @@ export const api = { request< ApiResponse<{ guildId: string; + departmentsEnabled?: boolean; + configuredDepartments?: { id: string; name: string; emoji?: string }[]; tickets: { ticket_id: string; user_id: string; diff --git a/dashboard/src/pages/Tickets.tsx b/dashboard/src/pages/Tickets.tsx index 0f00aba..6919d93 100644 --- a/dashboard/src/pages/Tickets.tsx +++ b/dashboard/src/pages/Tickets.tsx @@ -147,9 +147,10 @@ export default function Tickets() { api.getConfigJson("supportbot") .then((res) => { if (res && res.data && typeof res.data === "object") { + const ticketType = getByPath(res.data, "Ticket.TicketType"); const deptVal = getByPath(res.data, "Ticket.DepartmentSystem.Enabled"); if (typeof deptVal === "boolean") { - setDepartmentsEnabled(deptVal); + setDepartmentsEnabled(ticketType !== "threads" && deptVal); } const deptsObj = getByPath(res.data, "Ticket.DepartmentSystem.Departments"); if (deptsObj && typeof deptsObj === "object") { @@ -160,7 +161,10 @@ export default function Tickets() { })); if (deptsList.length > 0) { setConfiguredDepartments(deptsList); - setCreateDept(deptsList[0].id); + setCreateDept((prev) => { + const exists = deptsList.some((d) => d.id === prev); + return exists ? prev : deptsList[0].id; + }); } } } @@ -251,7 +255,7 @@ export default function Tickets() { setCreating(true); try { const res = await api.createTicket({ - department: departmentsEnabled ? createDept : "general", + department: departmentsEnabled ? createDept : undefined, subject: createSubject.trim(), userId: createUserId.trim() || undefined, }); @@ -311,6 +315,16 @@ export default function Tickets() { if (res.data) { setGuildId(res.data.guildId); setList(res.data.tickets.sort((a, b) => b.created_at - a.created_at)); + if (typeof res.data.departmentsEnabled === "boolean") { + setDepartmentsEnabled(res.data.departmentsEnabled); + } + if (Array.isArray(res.data.configuredDepartments) && res.data.configuredDepartments.length > 0) { + setConfiguredDepartments(res.data.configuredDepartments); + setCreateDept((prev) => { + const exists = res.data?.configuredDepartments?.some((d) => d.id === prev); + return exists ? prev : res.data!.configuredDepartments![0].id; + }); + } } } catch (err) { setError(err instanceof Error ? err.message : "Failed to load open tickets"); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..afe7cdc --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "SupportBot-Dashboard", + "lockfileVersion": 3, + "requires": true, + "packages": {} +}