import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { Button, Dropdown, Input, InputNumber, Space } from 'antd'; import { MoreOutlined, EditOutlined, DeleteOutlined } from '@ant-design/icons'; import type { ColumnsType } from 'antd/es/table'; import { onNumber } from '@/utils/onNumber'; import { addrFor, domainsFor, expectedIPsFor } from './helpers'; import type { DnsServerValue } from './DnsServerModal'; export type DnsServerRow = { key: number; server: DnsServerValue }; export type FakednsTableRow = { key: number; ipPool: string; poolSize: number }; export function useDnsServerColumns({ openEditServer, deleteServer, }: { openEditServer: (idx: number) => void; deleteServer: (idx: number) => void; }): ColumnsType { const { t } = useTranslation(); return useMemo( () => [ { title: '#', key: 'action', align: 'center', width: 60, render: (_v, _record, index) => ( {index + 1} {t('edit')} ), onClick: () => openEditServer(index), }, { key: 'del', danger: true, label: ( <> {t('delete')} ), onClick: () => deleteServer(index), }, ], }} >