state debug, functions and status in state

main
Yuriy Evdokimov 2023-10-13 23:54:52 +05:00
parent 5665eb4955
commit dff64780f5
2 changed files with 12 additions and 10 deletions

View File

@ -31,4 +31,6 @@ export type Found = {
export enum BtnColor { export enum BtnColor {
blue = "primary", blue = "primary",
green = "success" green = "success"
} }
export enum Status {params, plaing, plaied, showlist}

View File

@ -1,10 +1,10 @@
import { finales, initials, tones } from "./data"; import { finales, initials, tones } from "./data";
import { IState } from "./store"; import { IState } from "./store";
import { SylPart, Syllable, Tone } from "./types"; import { SylPart, Syllable, Tone, Status } from "./types";
import { GetSyllablesByInitAndFin, getRandomArray, toggle } from "./utils"; import { GetSyllablesByInitAndFin, getRandomArray, toggle } from "./utils";
export enum ActionType { export enum ActionType {
toggleOne, toggleAll, refreshPlayList, setPause, setCount toggleOne, toggleAll, refreshPlayList, setPause, setCount, setStatus
} }
export enum ToggleType { init, fin } export enum ToggleType { init, fin }
@ -22,7 +22,7 @@ const ProceedAllInitials = (state: IState):{ allInitiales:boolean, initiales: Sy
initiales: toggled, initiales: toggled,
foundSyllables: foundSyllables, foundSyllables: foundSyllables,
foundTones: foundTones foundTones: foundTones
} }
} }
const ProceedAllFinales = (state: IState):{ allfinales:boolean, finales: SylPart[], foundSyllables:Syllable[], foundTones: Tone[]} => const ProceedAllFinales = (state: IState):{ allfinales:boolean, finales: SylPart[], foundSyllables:Syllable[], foundTones: Tone[]} =>
@ -35,10 +35,9 @@ const ProceedAllFinales = (state: IState):{ allfinales:boolean, finales: SylPart
finales: toggled, finales: toggled,
foundSyllables: foundSyllables, foundSyllables: foundSyllables,
foundTones: foundTones foundTones: foundTones
} }
} }
const ProceedInitiale = (state: IState, index: SylPart):{ initiales: SylPart[], foundSyllables:Syllable[], foundTones: Tone[]} => const ProceedInitiale = (state: IState, index: SylPart):{ initiales: SylPart[], foundSyllables:Syllable[], foundTones: Tone[]} =>
{ {
let toggled = toggle(state.initiales,index) let toggled = toggle(state.initiales,index)
@ -48,7 +47,7 @@ const ProceedInitiale = (state: IState, index: SylPart):{ initiales: SylPart[],
initiales: toggled, initiales: toggled,
foundSyllables: foundSyllables, foundSyllables: foundSyllables,
foundTones: foundTones foundTones: foundTones
} }
} }
const ProceedFinale = (state: IState, index: SylPart):{ finales: SylPart[], foundSyllables:Syllable[], foundTones: Tone[]} => const ProceedFinale = (state: IState, index: SylPart):{ finales: SylPart[], foundSyllables:Syllable[], foundTones: Tone[]} =>
@ -60,7 +59,7 @@ const ProceedFinale = (state: IState, index: SylPart):{ finales: SylPart[], foun
finales: toggled, finales: toggled,
foundSyllables: foundSyllables, foundSyllables: foundSyllables,
foundTones: foundTones foundTones: foundTones
} }
} }
export const reducer = (state:IState, action:Action):IState => { export const reducer = (state:IState, action:Action):IState => {
@ -68,6 +67,7 @@ export const reducer = (state:IState, action:Action):IState => {
case ActionType.setPause: return { ...state, sylPause: action.payload as number } case ActionType.setPause: return { ...state, sylPause: action.payload as number }
case ActionType.setCount: return { ...state, sylCount: action.payload as number } case ActionType.setCount: return { ...state, sylCount: action.payload as number }
case ActionType.refreshPlayList: return { ...state, randomTones: getRandomArray( state.foundTones, state.sylCount! ) } case ActionType.refreshPlayList: return { ...state, randomTones: getRandomArray( state.foundTones, state.sylCount! ) }
case ActionType.setStatus: return { ...state, status: action.payload as Status}
case ActionType.toggleAll: { case ActionType.toggleAll: {
if (action.payload as ToggleType === ToggleType.init) return { ...state, ...ProceedAllInitials(state) } if (action.payload as ToggleType === ToggleType.init) return { ...state, ...ProceedAllInitials(state) }
@ -76,9 +76,9 @@ export const reducer = (state:IState, action:Action):IState => {
} }
case ActionType.toggleOne: { case ActionType.toggleOne: {
if ( (action.payload as TogglePayload).type === ToggleType.init) if ( (action.payload as TogglePayload).type === ToggleType.init)
return { ...state, ...ProceedInitiale(state, (action.payload as TogglePayload).part ) } return { ...state, ...ProceedInitiale(state, (action.payload as TogglePayload).part ) }
if ( (action.payload as TogglePayload).type === ToggleType.fin) if ( (action.payload as TogglePayload).type === ToggleType.fin)
return { ...state, ...ProceedFinale(state, (action.payload as TogglePayload).part ) } return { ...state, ...ProceedFinale(state, (action.payload as TogglePayload).part ) }
return state return state
} }