IKHSAN
EN Read in EnglishID

opendesk

Publik
Branch
main
Commit terakhir
08d9f3328 Oktober 2026

ticketStatus.ts

Buka raw
import { ODTicketStatus } from "@/types/doctypes";
import { createListResource } from "frappe-ui";
import { defineStore } from "pinia";
import { statusDotClass as parseColor } from "@opendesk/shared/ticketStatus";

export { parseColor };

export const useTicketStatusStore = defineStore("ticketStatus", () => {
  const statuses = createListResource({
    doctype: "OD Ticket Status",
    cache: ["OD Ticket Status", "list"],
    fields: [
      "label_agent",
      "label_customer",
      "order",
      "different_view",
      "category",
      "color",
      "enabled",
    ],
    orderBy: "`tabOD Ticket Status`.order",
    pageLength: 1000,
    auto: true,
    transform: (data: ODTicketStatus[]) => {
      return data.map((d) => {
        if (!d.different_view) {
          d.label_customer = d.label_agent;
        }
        d["parsed_color"] = parseColor(d.color);
        return d;
      });
    },
  });

  function getStatus(label: string): ODTicketStatus | undefined {
    return statuses.data?.find(
      (s: ODTicketStatus) =>
        s.label_agent === label || s.label_customer === label
    );
  }
  const colorMap = {
    Green: ["text-ink-green-6", "bg-surface-green-2"],
    Black: ["text-ink-gray-9", "bg-surface-gray-2"],
    Gray: ["text-ink-gray-7", "bg-surface-gray-2"],
    Blue: ["text-ink-blue-6", "bg-surface-blue-2"],
    Red: ["text-ink-red-6", "bg-surface-red-1"],
    Pink: ["text-ink-pink-1", "bg-surface-pink-1"],
    Orange: ["text-ink-orange-6", "bg-surface-orange-1"],
    Amber: ["text-ink-amber-6", "bg-surface-amber-2"],
    Yellow: ["text-ink-yellow-6", "bg-surface-amber-2"],
    Cyan: ["text-ink-cyan-6", "bg-surface-cyan-1"],
    Teal: ["text-ink-teal-6", "bg-surface-teal-1"],
    Violet: ["text-ink-violet-6", "bg-surface-violet-1"],
    Purple: ["text-ink-purple-6", "bg-surface-purple-1"],
    Default: ["text-ink-gray-9", "bg-surface-gray-2"],
  };

  return {
    statuses,
    colorMap,
    getStatus,
  };
});
byte
1.964
baris
64
Jenis
ts
Commit terakhir
28 Oktober 2026