From 75b43e1e846aa2bbeb1c19a0ca95dfa87ae1ff5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=B2=81=E6=A0=91=E4=BA=BA?= Date: Sat, 17 May 2025 11:20:52 +0900 Subject: [PATCH] refactor: batch 2 --- package.json | 1 + pnpm-lock.yaml | 21 ++ src/components/AppRoot.tsx | 19 +- src/components/Dialog.tsx | 2 +- src/components/ExtLink.tsx | 4 +- src/components/InfoModal.tsx | 25 ++ src/components/InstructionsTabs.tsx | 33 +++ src/components/KeyInput.tsx | 85 +++++++ src/components/Ruby.tsx | 20 ++ src/features/settings/Settings.tsx | 216 +++++++----------- .../settings/panels/PanelQMCv2Key.tsx | 85 +++---- .../settings/panels/QMCv2/InstructionsPC.tsx | 14 +- .../QMCv2/QMCv2DoubanAllInstructions.tsx | 23 +- .../settings/panels/QMCv2/QMCv2EKeyItem.tsx | 57 ++--- .../QMCv2/QMCv2QQMusicAllInstructions.tsx | 38 ++- src/features/settings/settingsTabs.tsx | 13 ++ 16 files changed, 384 insertions(+), 272 deletions(-) create mode 100644 src/components/InfoModal.tsx create mode 100644 src/components/InstructionsTabs.tsx create mode 100644 src/components/KeyInput.tsx create mode 100644 src/components/Ruby.tsx create mode 100644 src/features/settings/settingsTabs.tsx diff --git a/package.json b/package.json index 7a11b27..8d00f68 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "react-redux": "^9.2.0", "react-router": "^7.6.0", "react-syntax-highlighter": "^15.6.1", + "react-toastify": "^11.0.5", "sass": "^1.89.0", "sql.js": "^1.13.0", "workbox-build": "^7.3.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e14dcd0..a61154b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -77,6 +77,9 @@ importers: react-syntax-highlighter: specifier: ^15.6.1 version: 15.6.1(react@19.1.0) + react-toastify: + specifier: ^11.0.5 + version: 11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0) sass: specifier: ^1.89.0 version: 1.89.0 @@ -1971,6 +1974,10 @@ packages: resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==} engines: {node: '>=18'} + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} + color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} @@ -3414,6 +3421,12 @@ packages: peerDependencies: react: '>= 0.14.0' + react-toastify@11.0.5: + resolution: {integrity: sha512-EpqHBGvnSTtHYhCPLxML05NLY2ZX0JURbAdNYa6BUkk+amz4wbKBQvoKQAB0ardvSarUBuY4Q4s1sluAzZwkmA==} + peerDependencies: + react: ^18 || ^19 + react-dom: ^18 || ^19 + react@19.1.0: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} @@ -6102,6 +6115,8 @@ snapshots: slice-ansi: 5.0.0 string-width: 7.2.0 + clsx@2.1.1: {} + color-convert@2.0.1: dependencies: color-name: 1.1.4 @@ -7562,6 +7577,12 @@ snapshots: react: 19.1.0 refractor: 3.6.0 + react-toastify@11.0.5(react-dom@19.1.0(react@19.1.0))(react@19.1.0): + dependencies: + clsx: 2.1.1 + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + react@19.1.0: {} readdirp@4.1.2: {} diff --git a/src/components/AppRoot.tsx b/src/components/AppRoot.tsx index 2b571e1..7382a2f 100644 --- a/src/components/AppRoot.tsx +++ b/src/components/AppRoot.tsx @@ -10,6 +10,8 @@ import { persistSettings } from '~/features/settings/persistSettings'; import { setupStore } from '~/store'; import { Footer } from '~/components/Footer'; import { FaqTab } from '~/tabs/FaqTab'; +import { SETTINGS_TABS } from '~/features/settings/settingsTabs'; +import { Bounce, ToastContainer } from 'react-toastify'; // Private to this file only. const store = setupStore(); @@ -40,11 +42,26 @@ export function AppRoot() {
- + + {Object.entries(SETTINGS_TABS).map(([key, { Tab }]) => ( + + ))} +
+ +