mirror of
https://github.com/hibiken/asynqmon.git
synced 2025-10-25 07:46:12 +08:00
50 lines
879 B
TypeScript
50 lines
879 B
TypeScript
import {
|
|
GET_METRICS_BEGIN,
|
|
GET_METRICS_ERROR,
|
|
GET_METRICS_SUCCESS,
|
|
MetricsActionTypes,
|
|
} from "../actions/metricsActions";
|
|
import { MetricsResponse } from "../api";
|
|
|
|
interface MetricsState {
|
|
loading: boolean;
|
|
error: string;
|
|
data: MetricsResponse | null;
|
|
}
|
|
|
|
const initialState: MetricsState = {
|
|
loading: false,
|
|
error: "",
|
|
data: null,
|
|
};
|
|
|
|
export default function metricsReducer(
|
|
state = initialState,
|
|
action: MetricsActionTypes
|
|
): MetricsState {
|
|
switch (action.type) {
|
|
case GET_METRICS_BEGIN:
|
|
return {
|
|
...state,
|
|
loading: true,
|
|
};
|
|
|
|
case GET_METRICS_ERROR:
|
|
return {
|
|
...state,
|
|
loading: false,
|
|
error: action.error,
|
|
};
|
|
|
|
case GET_METRICS_SUCCESS:
|
|
return {
|
|
loading: false,
|
|
error: "",
|
|
data: action.payload,
|
|
};
|
|
|
|
default:
|
|
return state;
|
|
}
|
|
}
|