Files
noahspan-flying/app/src/components/logTracks/reducer.ts
noahspannbauer 08498a64d8 Feature/59 add tracks to log form (#70)
* adding tracks

* adding tracks

* adding tracks
2025-03-22 09:28:10 -05:00

56 lines
1.4 KiB
TypeScript

import { LogTracksState } from "./LogTracksState.interface";
type Action =
| { type: 'SET_IS_CONFIRM_DIALOG_OPEN'; payload: boolean }
| { type: 'SET_IS_CONFORM_DIALOG_LOADING'; payload: boolean }
| { type: 'SET_IS_LOADING'; payload: boolean }
| { type: 'SET_ON_DELETE_TRACK'; payload: { isConfirmDialogOpen: boolean, selectedTrack: { fileName: string, index: number } }}
| { type: 'SET_TRACKS'; payload: string[] };
export const initialState: LogTracksState = {
isConfirmDialogOpen: false,
isConfirmDialogLoading: false,
isLoading: false,
selectedTrack: undefined,
tracks: []
}
export const reducer = (state: LogTracksState, action: Action): LogTracksState => {
switch (action.type) {
case 'SET_IS_CONFIRM_DIALOG_OPEN': {
return {
...state,
isConfirmDialogOpen: action.payload
}
}
case 'SET_IS_CONFORM_DIALOG_LOADING': {
return {
...state,
isConfirmDialogLoading: action.payload
}
}
case 'SET_IS_LOADING': {
return {
...state,
isLoading: action.payload
}
}
case 'SET_ON_DELETE_TRACK': {
return {
...state,
isConfirmDialogOpen: action.payload.isConfirmDialogOpen,
selectedTrack: action.payload.selectedTrack
}
}
case 'SET_TRACKS': {
return {
...state,
tracks: action.payload
}
}
default: {
return state
}
}
}