Letter is an object that represent an character.
{
original: string,
typed: null | string,
status: 'untyped' | 'correct' | 'incorrect' | 'extra',
}
LetterSequence is array of Letter
Word is an object that represent sequence of letters.
{
isTyped: boolean,
show: boolean,
elRef: RefObject,
originalWord: string,
letterSequence: Array<Letter>,
}
WordSequence is array of Word
TypingStore is an object that represent state of user's typing in typing area.
{
inputValue:string,
languageJSON: {
lang: string
name: string
words: Array<string>
},
wordSequence: WordSequence,
caretPosition: [number, number],
statistics: Object
}
Statistics is result of a test in range of time.
{
wpm: number,
accuracy: number,
correctWords: number,
incorrectWords: number,
time: number //in seconds
}