59 lines
1.3 KiB
TypeScript
59 lines
1.3 KiB
TypeScript
import { Alert } from '../../interfaces/Alert.interface';
|
|
import { LogFormState } from './LogFormState.interface';
|
|
|
|
type Action =
|
|
| { type: 'SET_ALERT'; payload: Alert | undefined }
|
|
| { type: 'SET_IS_DISABLED'; payload: boolean }
|
|
| { type: 'SET_IS_LOADING'; payload: boolean }
|
|
| { type: 'SET_PILOT_OPTIONS'; payload: { key: string, label: string; }[] }
|
|
| { type: 'SET_SELECTED_PILOT_NAME'; payload: string };
|
|
|
|
export const initialState: LogFormState = {
|
|
alert: undefined,
|
|
isDisabled: false,
|
|
isLoading: true,
|
|
pilotOptions: [],
|
|
selectedPilotName: ''
|
|
};
|
|
|
|
export const reducer = (
|
|
state: LogFormState,
|
|
action: Action
|
|
): LogFormState => {
|
|
switch (action.type) {
|
|
case 'SET_ALERT': {
|
|
return {
|
|
...state,
|
|
alert: action.payload
|
|
};
|
|
}
|
|
case 'SET_IS_DISABLED': {
|
|
return {
|
|
...state,
|
|
isDisabled: action.payload
|
|
};
|
|
}
|
|
case 'SET_IS_LOADING': {
|
|
return {
|
|
...state,
|
|
isLoading: action.payload
|
|
};
|
|
}
|
|
case 'SET_PILOT_OPTIONS': {
|
|
return {
|
|
...state,
|
|
pilotOptions: action.payload
|
|
};
|
|
}
|
|
case 'SET_SELECTED_PILOT_NAME': {
|
|
return {
|
|
...state,
|
|
selectedPilotName: action.payload
|
|
};
|
|
}
|
|
default: {
|
|
return state;
|
|
}
|
|
}
|
|
};
|