+
+
+
+
+
+
+
+
+ )
+}
+
+export default DictSwitcher
diff --git a/src/pages/Typing/Switcher/index.tsx b/src/pages/Typing/Switcher/index.tsx
index 3272c559..3a9e0153 100644
--- a/src/pages/Typing/Switcher/index.tsx
+++ b/src/pages/Typing/Switcher/index.tsx
@@ -1,6 +1,6 @@
import React, { Dispatch, useEffect } from 'react'
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
-import { switcherStateType, switcherDispatchType } from './useSwitcherState'
+import { switcherStateType, switcherDispatchType } from '../hooks/useSwitcherState'
import { useHotkeys } from 'react-hotkeys-hook'
export type SwitcherPropsType = {
diff --git a/src/pages/Typing/Switcher/useSwitcherState.ts b/src/pages/Typing/hooks/useSwitcherState.ts
similarity index 100%
rename from src/pages/Typing/Switcher/useSwitcherState.ts
rename to src/pages/Typing/hooks/useSwitcherState.ts
diff --git a/src/pages/Typing/hooks/useWordList.ts b/src/pages/Typing/hooks/useWordList.ts
new file mode 100644
index 00000000..262fc7ad
--- /dev/null
+++ b/src/pages/Typing/hooks/useWordList.ts
@@ -0,0 +1,89 @@
+import { useState, useCallback } from 'react'
+import cet4 from 'assets/CET4_N.json'
+
+export const dictList: any = {
+ cet4: ['CET-4', ''],
+ cet6: ['CET-6', './dicts/CET6_N.json'],
+ gmat: ['GMAT', './dicts/GMAT_N.json'],
+ gre: ['GRE', './dicts/GRE_N.json'],
+ ielts: ['IELTS', './dicts/IELTS_N.json'],
+ kaoyan: ['考研', './dicts/KaoYan_N.json'],
+ level4: ['专四', './dicts/Level4_N.json'],
+ level8: ['专八', './dicts/Level8_N.json'],
+ sat: ['SAT', './dicts/SAT_N.json'],
+ toefl: ['TOEFL', './dicts/TOEFL_N.json'],
+ coder: ['Coder Dict', './dicts/it-words.json'],
+ jsArray: ['js-array', './dicts/js-array.json'],
+ jsDate: ['js-date', './dicts/js-date.json'],
+ jsGlobal: ['js-global', './dicts/js-global.json'],
+ jsMapSet: ['js-map-set', './dicts/js-map-set.json'],
+ jsMath: ['js-math', './dicts/js-math.json'],
+ jsNumber: ['js-number', './dicts/js-number.json'],
+ jsObject: ['js-object', './dicts/js-object.json'],
+ jsPromise: ['js-promise', './dicts/js-promise.json'],
+ jsString: ['js-string', './dicts/js-string.json'],
+}
+
+export type WordType = {
+ name: string
+ trans: string[]
+ usphone: string
+ ukphone: string
+}
+
+export type WordListState = {
+ dictName: string
+ chapter: number
+ chapterListLength: number
+}
+export type wordListDispatchType = (type: string, payload?: any, callback?: any) => void
+
+export const useWordList = (
+ InputchapterLength: number,
+): [dictName: string, chapter: number, chapterListLength: number, wordList: WordType[], dispatch: wordListDispatchType] => {
+ const [chapterLength, setChapterLength] = useState(InputchapterLength)
+ const [dictName, setDictName] = useState