import { Space, TableColumnsType, Tooltip } from "antd"; import { ModalEnum } from "../../../enums/Model"; import { MdOutlineEdit } from "react-icons/md"; import { RiDeleteBin6Fill } from "react-icons/ri"; import { useObjectToEdit } from "../../../zustand/ObjectToEditState"; import { useModalState } from "../../../zustand/Modal"; import { useTranslation } from "react-i18next"; import { ABILITIES_ENUM, ABILITIES_VALUES_ENUM, } from "../../../enums/abilities"; import { hasAbility } from "../../../utils/hasAbility"; import { Cycle } from "../../../types/App"; import { useNavigate } from "react-router-dom"; import { EyeFilled } from "@ant-design/icons"; import { BsEye, BsEyeFill, BsEyeSlash } from "react-icons/bs"; export const useColumns = () => { const { setIsOpen } = useModalState((state) => state); const { set_object_to_edit } = useObjectToEdit((state) => state); const navigate = useNavigate(); const handelDelete = (record: any) => { set_object_to_edit(record); setIsOpen(ModalEnum?.CYCLE_DELETE); }; const handelShow = (record: any) => { navigate(`${record?.id}/${ABILITIES_ENUM?.TERM}`); }; const [t] = useTranslation(); const can_edit_Cycle = hasAbility( ABILITIES_ENUM.CYCLE, ABILITIES_VALUES_ENUM.UPDATE, ); const can_delete_Cycle = hasAbility( ABILITIES_ENUM.CYCLE, ABILITIES_VALUES_ENUM.DELETE, ); const can_show_Cycle = hasAbility( ABILITIES_ENUM.CYCLE, ABILITIES_VALUES_ENUM.SHOW, ); const columns: TableColumnsType = [ { title: t("columns.id"), dataIndex: "id", key: "id", align: "center", }, { title: t("columns.name"), dataIndex: "name", key: "name", align: "center", }, { title: t("columns.starting_date"), dataIndex: "starting_date", key: "starting_date", align: "center", }, { title: t("columns.ending_date"), dataIndex: "ending_date", key: "ending_date", align: "center", }, { title: t("columns.status"), dataIndex: "status", key: "status", align: "center", render: (text, record, index) => { if (record?.status === "active") { return
نشط
; } return
غير نشط
; }, }, { title: "", key: "actions", align: "end", width: "24vw", render: (text, record, index) => { const handleEdit = (record: any) => { set_object_to_edit(record); setIsOpen(ModalEnum?.CYCLE_EDIT); }; const className = index % 2 === 0 ? "even-row buttonAction" : "odd-row buttonAction"; return ( {can_edit_Cycle && ( handleEdit(record)}> )} {can_delete_Cycle && ( handelDelete(record)} size={22} style={{ color: "#C11313" }} /> )} handelShow(record)} size={22} style={{ color: "green" }} /> ); }, }, ]; return columns; };