本文整理汇总了TypeScript中src/types.GetState类的典型用法代码示例。如果您正苦于以下问题:TypeScript GetState类的具体用法?TypeScript GetState怎么用?TypeScript GetState使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GetState类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: async
export const refreshTimeMachineVariableValues = () => async (
dispatch,
getState: GetState
) => {
const contextID = getState().timeMachines.activeTimeMachineID
// Find variables currently used by queries in the TimeMachine
const {view, draftQueries} = getActiveTimeMachine(getState())
const draftView = {
...view,
properties: {...view.properties, queries: draftQueries},
}
const variables = extractVariablesList(getState())
const variablesInUse = filterUnusedVars(variables, [view, draftView])
// Find variables whose values have already been loaded by the TimeMachine
// (regardless of whether these variables are currently being used)
const hydratedVariables = getHydratedVariables(getState(), contextID)
// Refresh values for all variables with existing values and in use variables
const variablesToRefresh = variables.filter(
v => variablesInUse.includes(v) || hydratedVariables.includes(v)
)
await dispatch(refreshVariableValues(contextID, variablesToRefresh))
}
示例2: async
) => async (dispatch: Dispatch<Action>, getState: GetState): Promise<void> => {
dispatch(setValues(contextID, RemoteDataState.Loading))
try {
const {
orgs: {org},
} = getState()
const url = getState().links.query.self
const selections = getValueSelections(getState(), contextID)
const allVariables = extractVariablesList(getState())
if (pendingValueRequests[contextID]) {
pendingValueRequests[contextID].cancel()
}
pendingValueRequests[contextID] = hydrateVars(variables, allVariables, {
url,
orgID: org.id,
selections,
})
const values = await pendingValueRequests[contextID].promise
dispatch(setValues(contextID, RemoteDataState.Done, values))
} catch (e) {
if (e instanceof CancellationError) {
return
}
console.error(e)
dispatch(setValues(contextID, RemoteDataState.Error))
}
}
示例3: async
export const loadBuckets = () => async (
dispatch: Dispatch<Action>,
getState: GetState
) => {
const queryURL = getState().links.query.self
const orgID = getState().orgs.org.id
dispatch(setBuilderBucketsStatus(RemoteDataState.Loading))
try {
const buckets = await queryBuilderFetcher.findBuckets({
url: queryURL,
orgID,
})
const selectedBucket = getActiveQuery(getState()).builderConfig.buckets[0]
dispatch(setBuilderBuckets(buckets))
if (selectedBucket && buckets.includes(selectedBucket)) {
dispatch(selectBucket(selectedBucket))
} else {
dispatch(selectBucket(buckets[0], true))
}
} catch (e) {
if (e instanceof CancellationError) {
return
}
console.error(e)
dispatch(setBuilderBucketsStatus(RemoteDataState.Error))
}
}
示例4: async
) => async (dispatch, getState: GetState): Promise<void> => {
const variables = getHydratedVariables(getState(), dashboardID)
const dashboard = getState().dashboards.list.find(d => d.id === dashboardID)
dispatch(selectValue(dashboardID, variableID, value))
await dispatch(refreshVariableValues(dashboard.id, variables))
}
示例5: async
export const executeQueries = () => async (dispatch, getState: GetState) => {
const {view, timeRange} = getActiveTimeMachine(getState())
const queries = view.properties.queries.filter(({text}) => !!text.trim())
if (!queries.length) {
dispatch(setQueryResults(RemoteDataState.Done, [], null))
}
try {
dispatch(setQueryResults(RemoteDataState.Loading, null, null, null))
await dispatch(refreshTimeMachineVariableValues())
const orgID = getState().orgs.org.id
const activeTimeMachineID = getState().timeMachines.activeTimeMachineID
const variableAssignments = [
...getVariableAssignments(getState(), activeTimeMachineID),
...getTimeRangeVars(timeRange),
]
const startTime = Date.now()
pendingResults.forEach(({cancel}) => cancel())
pendingResults = queries.map(({text}) =>
executeQueryWithVars(orgID, text, variableAssignments)
)
const results = await Promise.all(pendingResults.map(r => r.promise))
const duration = Date.now() - startTime
const files = results.map(r => r.csv)
files.forEach(checkQueryResult)
dispatch(setQueryResults(RemoteDataState.Done, files, duration))
} catch (e) {
if (e instanceof CancellationError) {
return
}
if (get(e, 'status') === RATE_LIMIT_ERROR_STATUS) {
const retryAfter = get(e, 'headers.Retry-After')
dispatch(notify(rateLimitReached(retryAfter)))
}
console.error(e)
dispatch(setQueryResults(RemoteDataState.Error, null, null, e.message))
}
}
示例6: async
export const getMembers = () => async (
dispatch: Dispatch<Action>,
getState: GetState
) => {
try {
const {
orgs: {
org: {id},
},
} = getState()
dispatch(setMembers(RemoteDataState.Loading))
const [owners, members] = await Promise.all([
client.organizations.owners(id),
client.organizations.members(id),
])
const users = [...owners, ...members]
dispatch(setMembers(RemoteDataState.Done, users))
} catch (e) {
console.error(e)
dispatch(setMembers(RemoteDataState.Error))
}
}
示例7: async
export const cloneDashboard = (dashboard: Dashboard) => async (
dispatch,
getState: GetState
): Promise<void> => {
try {
const {
orgs: {org},
dashboards,
} = getState()
const allDashboardNames = dashboards.list.map(d => d.name)
const clonedName = incrementCloneName(allDashboardNames, dashboard.name)
const data = await client.dashboards.clone(dashboard.id, clonedName, org.id)
dispatch(checkDashboardLimits())
dispatch(push(`/orgs/${org.id}/dashboards/${data.id}`))
} catch (error) {
console.error(error)
if (isLimitError(error)) {
dispatch(notify(copy.resourceLimitReached('dashboards')))
} else {
dispatch(notify(copy.dashboardCreateFailed()))
}
}
}