UNPKG

react-typing-test

Version:

A react component typing test, user input and wpm calculations.

49 lines (41 loc) 999 B
import wordList from "./words.json"; export type SupportedLanguage = | "english" | "english1000" | "spanish" | "dots" | "italian" | "german" | "chinese" | "korean" | "polish" | "punjabi" | "swedish" | "french" | "arabic" | "portuguese" | "russian" | "finnish"; type GetRandomWordListType = { language: SupportedLanguage; wordLimit: number; customList?: string[]; }; type WordList = { [key in SupportedLanguage]: string[]; }; export const getRandomWordList = ({ language, wordLimit, customList, }: GetRandomWordListType): string[] => { const formatted = wordList as WordList; let wordCount = formatted[language].length; const randomWords = Array.from(Array(wordLimit)).map(() => customList?.length ? customList[Math.floor(Math.random() * customList.length)] : formatted[language][Math.floor(Math.random() * wordCount)] ); console.log(randomWords); return randomWords; };