|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import React, { useState } from 'react'; |
|
|
import { Button, Space } from '@douyinfe/semi-ui'; |
|
|
import { showError } from '../../../helpers'; |
|
|
import CopyTokensModal from './modals/CopyTokensModal'; |
|
|
import DeleteTokensModal from './modals/DeleteTokensModal'; |
|
|
|
|
|
const TokensActions = ({ |
|
|
selectedKeys, |
|
|
setEditingToken, |
|
|
setShowEdit, |
|
|
batchCopyTokens, |
|
|
batchDeleteTokens, |
|
|
copyText, |
|
|
t, |
|
|
}) => { |
|
|
|
|
|
const [showCopyModal, setShowCopyModal] = useState(false); |
|
|
const [showDeleteModal, setShowDeleteModal] = useState(false); |
|
|
|
|
|
|
|
|
const handleCopySelectedTokens = () => { |
|
|
if (selectedKeys.length === 0) { |
|
|
showError(t('请至少选择一个令牌!')); |
|
|
return; |
|
|
} |
|
|
setShowCopyModal(true); |
|
|
}; |
|
|
|
|
|
|
|
|
const handleDeleteSelectedTokens = () => { |
|
|
if (selectedKeys.length === 0) { |
|
|
showError(t('请至少选择一个令牌!')); |
|
|
return; |
|
|
} |
|
|
setShowDeleteModal(true); |
|
|
}; |
|
|
|
|
|
|
|
|
const handleConfirmDelete = () => { |
|
|
batchDeleteTokens(); |
|
|
setShowDeleteModal(false); |
|
|
}; |
|
|
|
|
|
return ( |
|
|
<> |
|
|
<div className='flex flex-wrap gap-2 w-full md:w-auto order-2 md:order-1'> |
|
|
<Button |
|
|
type='primary' |
|
|
className='flex-1 md:flex-initial' |
|
|
onClick={() => { |
|
|
setEditingToken({ |
|
|
id: undefined, |
|
|
}); |
|
|
setShowEdit(true); |
|
|
}} |
|
|
size='small' |
|
|
> |
|
|
{t('添加令牌')} |
|
|
</Button> |
|
|
|
|
|
<Button |
|
|
type='tertiary' |
|
|
className='flex-1 md:flex-initial' |
|
|
onClick={handleCopySelectedTokens} |
|
|
size='small' |
|
|
> |
|
|
{t('复制所选令牌')} |
|
|
</Button> |
|
|
|
|
|
<Button |
|
|
type='danger' |
|
|
className='w-full md:w-auto' |
|
|
onClick={handleDeleteSelectedTokens} |
|
|
size='small' |
|
|
> |
|
|
{t('删除所选令牌')} |
|
|
</Button> |
|
|
</div> |
|
|
|
|
|
<CopyTokensModal |
|
|
visible={showCopyModal} |
|
|
onCancel={() => setShowCopyModal(false)} |
|
|
selectedKeys={selectedKeys} |
|
|
copyText={copyText} |
|
|
t={t} |
|
|
/> |
|
|
|
|
|
<DeleteTokensModal |
|
|
visible={showDeleteModal} |
|
|
onCancel={() => setShowDeleteModal(false)} |
|
|
onConfirm={handleConfirmDelete} |
|
|
selectedKeys={selectedKeys} |
|
|
t={t} |
|
|
/> |
|
|
</> |
|
|
); |
|
|
}; |
|
|
|
|
|
export default TokensActions; |
|
|
|