-
Notifications
You must be signed in to change notification settings - Fork 3.6k
/
Copy pathindex.ts
31 lines (23 loc) · 942 Bytes
/
index.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// Libraries
import memoizeOne from 'memoize-one'
import {flatMap} from 'lodash'
// Utils
import {parseResponse} from 'src/shared/parsing/flux/response'
// Types
import {FluxTable} from 'src/types'
import {AppState} from 'src/types/v2'
import {DashboardDraftQuery} from 'src/types/v2/dashboards'
export const getActiveTimeMachine = (state: AppState) => {
const {activeTimeMachineID, timeMachines} = state.timeMachines
const timeMachine = timeMachines[activeTimeMachineID]
return timeMachine
}
export const getActiveQuery = (state: AppState): DashboardDraftQuery => {
const {draftQueries, activeQueryIndex} = getActiveTimeMachine(state)
return draftQueries[activeQueryIndex]
}
const getTablesMemoized = memoizeOne(
(files: string[]): FluxTable[] => (files ? flatMap(files, parseResponse) : [])
)
export const getTables = (state: AppState): FluxTable[] =>
getTablesMemoized(getActiveTimeMachine(state).queryResults.files)