import { Box, Button, ButtonGroup, Flex, HStack, Heading, Icon, IconButton, Input, InputGroup, InputLeftElement, InputRightElement, List, ListItem, Menu, MenuButton, MenuDivider, MenuItem, MenuList, Text, VStack, } from '@chakra-ui/react'; import { useDispatch, useSelector } from 'react-redux'; import { qmc2AddKey, qmc2ClearKeys, qmc2DeleteKey, qmc2UpdateKey } from '../settingsSlice'; import { selectStagingQMCv2Settings } from '../settingsSelector'; import React from 'react'; import { MdAdd, MdDelete, MdDeleteForever, MdExpandMore, MdFileUpload, MdVpnKey } from 'react-icons/md'; export function PanelQMCv2Key() { const dispatch = useDispatch(); const qmc2Keys = useSelector(selectStagingQMCv2Settings).keys; const addKey = () => dispatch(qmc2AddKey()); const updateKey = (prop: 'name' | 'key', id: string, e: React.ChangeEvent) => dispatch(qmc2UpdateKey({ id, field: prop, value: e.target.value })); const deleteKey = (id: string) => dispatch(qmc2DeleteKey({ id })); const clearAll = () => dispatch(qmc2ClearKeys()); return ( 密钥 }> {/* 目前的想法是弹出一个 modal,给用户一些信息(如期待的格式、如何导出或寻找对应的文件) */} {/* 但是这样的话就不太方便放在这个分支里面做了,下次一定。 */} {qmc2Keys.map(({ id, key, name }, i) => ( {i + 1} updateKey('name', id, e)} /> updateKey('key', id, e)} /> {key.length || '?'} } variant="ghost" colorScheme="red" type="button" onClick={() => deleteKey(id)} /> ))} {qmc2Keys.length === 0 && 还没有添加密钥。} ); }