refactor: batch 2

This commit is contained in:
鲁树人
2025-05-17 11:20:52 +09:00
parent 246ba48135
commit 75b43e1e84
16 changed files with 384 additions and 272 deletions

View File

@@ -1,4 +1,4 @@
import { Select, useToast } from '@chakra-ui/react';
import { useToast } from '@chakra-ui/react';
import { useDispatch, useSelector } from 'react-redux';
import { qmc2AddKey, qmc2AllowFuzzyNameSearch, qmc2ClearKeys, qmc2ImportKeys } from '../settingsSlice';
import { selectStagingQMCv2Settings } from '../settingsSelector';
@@ -12,10 +12,11 @@ import { getFileName } from '~/util/pathHelper';
import { QMCv2QQMusicAllInstructions } from './QMCv2/QMCv2QQMusicAllInstructions';
import { QMCv2DoubanAllInstructions } from './QMCv2/QMCv2DoubanAllInstructions';
import { AddKey } from '~/components/AddKey';
import { Dialog } from '~/components/Dialog';
import { InfoModal } from '~/components/InfoModal.tsx';
import { Ruby } from '~/components/Ruby.tsx';
import { ExtLink } from '~/components/ExtLink.tsx';
export function PanelQMCv2Key() {
const [showFuzzyNameSearchInfo, setShowFuzzyNameSearchInfo] = useState(false);
const toast = useToast();
const dispatch = useDispatch();
const { keys: qmc2Keys, allowFuzzyNameSearch } = useSelector(selectStagingQMCv2Settings);
@@ -74,18 +75,13 @@ export function PanelQMCv2Key() {
};
return (
<div className="flex min-h-0 flex-col flex-1">
<>
<h2 className="text-2xl font-bold">QMCv2 </h2>
<p>
<span>QQ FM QMCv2</span>
<span>
使QQ Mac iOS 使 FM
线
</span>
</p>
<p>QQ FM QMCv2</p>
<p>QQ Mac iOS FM</p>
<div className="flex flex-row gap-2 items-center">
<div className="flex flex-row gap-2 items-center my-2">
<label className="label">
<input
className="checkbox"
@@ -95,56 +91,51 @@ export function PanelQMCv2Key() {
/>
</label>
<button className="btn btn-info btn-sm" type="button" onClick={() => setShowFuzzyNameSearchInfo(true)}>
?
</button>
<Dialog
closeButton
backdropClose
show={showFuzzyNameSearchInfo}
onClose={() => setShowFuzzyNameSearchInfo(false)}
<InfoModal
title="莱文斯坦距离"
description={
<div>
<p>使</p>
<p>
使
<ExtLink href="https://zh.wikipedia.org/zh-cn/%E8%90%8A%E6%96%87%E6%96%AF%E5%9D%A6%E8%B7%9D%E9%9B%A2">
<Ruby caption="Levenshtein distance"></Ruby>
</ExtLink>
</p>
<p></p>
<p></p>
</div>
}
>
<p>使</p>
<p>
使
<ruby>
<rp> (</rp>
<rt>Levenshtein distance</rt>
<rp>)</rp>
</ruby>
</p>
<p></p>
<p></p>
</Dialog>
?
</InfoModal>
</div>
<h3 className="mt-2 text-1xl font-bold"></h3>
<AddKey addKey={addKey} importKeyFromFile={() => setShowImportModal(true)} clearKeys={clearAll} />
<div className="flex-1 min-h-0 overflow-auto pr-4">
<ul className="list bg-base-100 rounded-box shadow-md">
{qmc2Keys.map(({ id, ekey, name }, i) => (
<QMCv2EKeyItem key={id} id={id} ekey={ekey} name={name} i={i} />
))}
</ul>
{qmc2Keys.length === 0 && <p className="p-4 pb-2 text-xs tracking-wide"></p>}
<div className="flex-1 min-h-0 overflow-auto pr-4 pt-3">
{qmc2Keys.length > 0 && (
<ul className="list bg-base-100 rounded-box shadow-md border border-base-300">
{qmc2Keys.map(({ id, ekey, name }, i) => (
<QMCv2EKeyItem key={id} id={id} ekey={ekey} name={name} i={i} />
))}
</ul>
)}
{qmc2Keys.length === 0 && <p className="p-4 pb-2 tracking-wide"></p>}
</div>
<ImportSecretModal
clientName={
<Select
<select
value={secretType}
onChange={(e) => setSecretType(e.target.value as 'qm' | 'douban')}
variant="flushed"
display="inline"
css={{ paddingLeft: '0.75rem', width: 'auto' }}
className="inline mx-1 px-1 border-b border-accent/50 bg-base-100"
>
<option value="qm">QQ </option>
<option value="douban"> FM</option>
</Select>
</select>
}
show={showImportModal}
onClose={() => setShowImportModal(false)}
@@ -153,6 +144,6 @@ export function PanelQMCv2Key() {
{secretType === 'qm' && <QMCv2QQMusicAllInstructions />}
{secretType === 'douban' && <QMCv2DoubanAllInstructions />}
</ImportSecretModal>
</div>
</>
);
}