import AutoTooltip from '@/components/auto-tooltip'; import DeleteModal from '@/components/delete-modal'; import PageTools from '@/components/page-tools'; import { PageAction } from '@/config'; import HotKeys from '@/config/hotkeys'; import type { PageActionType } from '@/config/types'; import useTableFetch from '@/hooks/use-table-fetch'; import { DeleteOutlined, PlusOutlined, SearchOutlined, SyncOutlined } from '@ant-design/icons'; import { PageContainer } from '@ant-design/pro-components'; import { useIntl } from '@umijs/max'; import { Button, ConfigProvider, Empty, Input, Space, Table, Tooltip } from 'antd'; import dayjs from 'dayjs'; import { useState } from 'react'; import { useHotkeys } from 'react-hotkeys-hook'; import { deleteApisKey, queryApisKeysList } from './apis'; import AddAPIKeyModal from './components/add-apikey'; import { ListItem } from './config/types'; const { Column } = Table; const APIKeys: React.FC = () => { const { dataSource, rowSelection, queryParams, sortOrder, modalRef, handleDelete, handleDeleteBatch, fetchData, handlePageChange, handleTableChange, handleSearch, handleNameChange } = useTableFetch({ fetchAPI: queryApisKeysList, deleteAPI: deleteApisKey, contentForDelete: 'apikeys.table.apikeys' }); const intl = useIntl(); const [openAddModal, setOpenAddModal] = useState(false); const [action, setAction] = useState(PageAction.CREATE); const handleAddUser = () => { setOpenAddModal(true); setAction(PageAction.CREATE); }; const handleModalOk = async () => { try { await fetchData(); setOpenAddModal(false); } catch (error) { // do nothing } }; const handleModalCancel = () => { console.log('handleModalCancel'); setOpenAddModal(false); }; const renderEmpty = (type?: string) => { if (type !== 'Table') return; if ( !dataSource.loading && dataSource.loadend && !dataSource.dataList.length ) { return ; } return
; }; useHotkeys( HotKeys.CREATE, () => { handleAddUser(); }, { enabled: !openAddModal } ); return ( <> } placeholder={intl.formatMessage({ id: 'common.filter.name' })} style={{ width: 300 }} allowClear onChange={handleNameChange} > } right={ } > { return ( {text} ); }} /> { return ( {text ? dayjs(text).format('YYYY-MM-DD HH:mm:ss') : intl.formatMessage({ id: 'apikeys.form.expiration.never' })} ); }} /> { return {text}; }} /> { return ( {dayjs(text).format('YYYY-MM-DD HH:mm:ss')} ); }} /> { return ( ); }} />
); }; export default APIKeys;