From 3fd4090cea2b8a61533e0352f564aa3bee163ef2 Mon Sep 17 00:00:00 2001 From: Christopher Henn Date: Fri, 6 Jul 2018 14:35:32 -0700 Subject: [PATCH] Type dashTimeV1 reducer --- ui/src/dashboards/actions/index.ts | 4 +-- .../reducers/{dashTimeV1.js => dashTimeV1.ts} | 25 +++++++++++++------ 2 files changed, 20 insertions(+), 9 deletions(-) rename ui/src/dashboards/reducers/{dashTimeV1.js => dashTimeV1.ts} (60%) diff --git a/ui/src/dashboards/actions/index.ts b/ui/src/dashboards/actions/index.ts index 7826ba2d9a..4a8d51bf7d 100644 --- a/ui/src/dashboards/actions/index.ts +++ b/ui/src/dashboards/actions/index.ts @@ -99,7 +99,7 @@ interface LoadDashboardAction { interface RetainRangesDashTimeV1Action { type: ActionType.RetainRangesDashboardTimeV1 payload: { - dashboardIDs: string[] + dashboardIDs: number[] } } @@ -260,7 +260,7 @@ export const setDashTimeV1 = ( }) export const retainRangesDashTimeV1 = ( - dashboardIDs: string[] + dashboardIDs: number[] ): RetainRangesDashTimeV1Action => ({ type: ActionType.RetainRangesDashboardTimeV1, payload: {dashboardIDs}, diff --git a/ui/src/dashboards/reducers/dashTimeV1.js b/ui/src/dashboards/reducers/dashTimeV1.ts similarity index 60% rename from ui/src/dashboards/reducers/dashTimeV1.js rename to ui/src/dashboards/reducers/dashTimeV1.ts index fc1cfd350b..319f6363e3 100644 --- a/ui/src/dashboards/reducers/dashTimeV1.js +++ b/ui/src/dashboards/reducers/dashTimeV1.ts @@ -1,17 +1,30 @@ import _ from 'lodash' -const initialState = { + +import {TimeRange} from 'src/types' +import {Action, ActionType} from 'src/dashboards/actions' + +interface Range extends TimeRange { + dashboardID: number +} + +interface State { + ranges: Range[] +} + +const initialState: State = { ranges: [], } -const dashTimeV1 = (state = initialState, action) => { +export default (state: State = initialState, action: Action) => { switch (action.type) { - case 'DELETE_DASHBOARD': { + case ActionType.DeleteDashboard: { const {dashboard} = action.payload const ranges = state.ranges.filter(r => r.dashboardID !== dashboard.id) return {...state, ranges} } - case 'RETAIN_RANGES_DASHBOARD_TIME_V1': { + + case ActionType.RetainRangesDashboardTimeV1: { const {dashboardIDs} = action.payload const ranges = state.ranges.filter(r => dashboardIDs.includes(r.dashboardID) @@ -19,7 +32,7 @@ const dashTimeV1 = (state = initialState, action) => { return {...state, ranges} } - case 'SET_DASHBOARD_TIME_V1': { + case ActionType.SetDashboardTimeV1: { const {dashboardID, timeRange} = action.payload const newTimeRange = [{dashboardID, ...timeRange}] const ranges = _.unionBy(newTimeRange, state.ranges, 'dashboardID') @@ -30,5 +43,3 @@ const dashTimeV1 = (state = initialState, action) => { return state } - -export default dashTimeV1