refactor(tickets): update render functions in TicketConfigPage and TicketsListPage to use specific types for improved type safety

This commit is contained in:
hossein taromi 2025-11-25 11:53:46 +03:30
parent 554f050941
commit 24cf881a24
2 changed files with 13 additions and 9 deletions

View File

@ -183,7 +183,7 @@ const TicketConfigPage = () => {
{ {
key: "actions", key: "actions",
label: "عملیات", label: "عملیات",
render: (_val, row: TicketDepartment) => ( render: (_val: unknown, row: TicketDepartment) => (
<div className="flex items-center justify-end gap-2"> <div className="flex items-center justify-end gap-2">
<button <button
className="text-primary-600" className="text-primary-600"
@ -225,7 +225,7 @@ const TicketConfigPage = () => {
{ {
key: "actions", key: "actions",
label: "عملیات", label: "عملیات",
render: (_val, row: TicketStatus) => ( render: (_val: unknown, row: TicketStatus) => (
<div className="flex items-center justify-end gap-2"> <div className="flex items-center justify-end gap-2">
<button <button
className="text-primary-600" className="text-primary-600"
@ -261,7 +261,7 @@ const TicketConfigPage = () => {
key: "department", key: "department",
label: "دپارتمان", label: "دپارتمان",
align: "right", align: "right",
render: (_val, row: TicketSubject) => row.department?.name || "-", render: (_val: unknown, row: TicketSubject) => row.department?.name || "-",
}, },
{ key: "slug", label: "شناسه", align: "right" }, { key: "slug", label: "شناسه", align: "right" },
{ key: "position", label: "ترتیب", align: "center" }, { key: "position", label: "ترتیب", align: "center" },
@ -273,7 +273,7 @@ const TicketConfigPage = () => {
{ {
key: "actions", key: "actions",
label: "عملیات", label: "عملیات",
render: (_val, row: TicketSubject) => ( render: (_val: unknown, row: TicketSubject) => (
<div className="flex items-center justify-end gap-2"> <div className="flex items-center justify-end gap-2">
<button <button
className="text-primary-600" className="text-primary-600"

View File

@ -5,7 +5,11 @@ import {
useTicketStatuses, useTicketStatuses,
useTickets, useTickets,
} from "../core/_hooks"; } from "../core/_hooks";
import { TicketFilters, TicketStatus } from "../core/_models"; import {
TicketFilters,
TicketStatus,
TicketSummary,
} from "../core/_models";
import { PageContainer, PageTitle } from "@/components/ui/Typography"; import { PageContainer, PageTitle } from "@/components/ui/Typography";
import { Button } from "@/components/ui/Button"; import { Button } from "@/components/ui/Button";
import { Input } from "@/components/ui/Input"; import { Input } from "@/components/ui/Input";
@ -51,13 +55,13 @@ const TicketsListPage = () => {
key: "department", key: "department",
label: "دپارتمان", label: "دپارتمان",
align: "right", align: "right",
render: (_val, row: any) => row.department?.name || "-", render: (_val: unknown, row: TicketSummary) => row.department?.name || "-",
}, },
{ {
key: "status", key: "status",
label: "وضعیت", label: "وضعیت",
align: "right", align: "right",
render: (_val, row: any) => ( render: (_val: unknown, row: TicketSummary) => (
<span <span
className={`px-2 py-1 rounded-full text-xs font-medium ${statusColor( className={`px-2 py-1 rounded-full text-xs font-medium ${statusColor(
row.status row.status
@ -71,7 +75,7 @@ const TicketsListPage = () => {
key: "assigned_to", key: "assigned_to",
label: "مسئول", label: "مسئول",
align: "right", align: "right",
render: (_val, row: any) => render: (_val: unknown, row: TicketSummary) =>
row.assigned_user row.assigned_user
? `${row.assigned_user.first_name || ""} ${ ? `${row.assigned_user.first_name || ""} ${
row.assigned_user.last_name || "" row.assigned_user.last_name || ""
@ -88,7 +92,7 @@ const TicketsListPage = () => {
key: "actions", key: "actions",
label: "عملیات", label: "عملیات",
align: "right", align: "right",
render: (_val, row: any) => ( render: (_val: unknown, row: TicketSummary) => (
<button <button
onClick={() => navigate(`/tickets/${row.id}`)} onClick={() => navigate(`/tickets/${row.id}`)}
className="text-primary-600 hover:text-primary-800" className="text-primary-600 hover:text-primary-800"