import { IconButton } from "@mui/material"; import { GridColDef } from "@mui/x-data-grid"; import { Promocode } from "@root/model/promocodes"; import { useMemo } from "react"; import { BarChart, Delete } from "@mui/icons-material"; import {promocodeApi} from "@root/api/promocode/requests"; export function usePromocodeGridColDef( setStatistics: (id: string) => void, deletePromocode: (id: string) => void ) { const validity = (value:string|number) => {if(value===0){return "неоганичен"}else {return new Date(value).toLocaleString()}} return useMemo[]>( () => [ { field: "id", headerName: "ID", width: 30, sortable: false, valueGetter: ({ row }) => row.id, }, { field: "codeword", headerName: "Кодовое слово", width: 160, sortable: false, valueGetter: ({ row }) => row.codeword, }, { field: "factor", headerName: "Коэф. скидки", width: 120, sortable: false, valueGetter: ({ row }) => Math.round(row.bonus.discount.factor * 1000) / 1000, }, { field: "activationCount", headerName: "Кол-во активаций", width: 140, sortable: false, valueGetter: ({ row }) => row.activationCount, }, { field: "dueTo", headerName: "Истекает", width: 160, sortable: false, valueGetter: ({ row }) => row.dueTo * 1000, valueFormatter: ({ value }) => `${validity(value)}`, }, { field: "settings", headerName: "", width: 60, sortable: false, renderCell: (params) => { return ( { setStatistics(params.row.id,) promocodeApi.getPromocodeStatistics(params.row.id, 0, 0) }}> ); }, }, { field: "delete", headerName: "", width: 60, sortable: false, renderCell: (params) => { return ( deletePromocode(params.row.id)}> ); }, }, ], [deletePromocode, setStatistics] ); }