mapper: (state, action): ExploreItemState => { const { queryIntervals, refreshInterval } = state; const { result, resultType, latency } = action.payload; const results = calculateResultsFromQueryTransactions(result, resultType, queryIntervals.intervalMs); const live = isLive(refreshInterval); if (live) { return state; } return { ...state, graphResult: resultType === 'Graph' ? results.graphResult : state.graphResult, tableResult: resultType === 'Table' ? results.tableResult : state.tableResult, logsResult: resultType === 'Logs' ? sortLogsResult(results.logsResult, refreshInterval) : sortLogsResult(state.logsResult, refreshInterval), latency, graphIsLoading: live ? true : false, logIsLoading: live ? true : false, tableIsLoading: live ? true : false, showingStartPage: false, update: makeInitialUpdateState(), }; },
mapper: (state, action): ExploreItemState => { const { queryIntervals, refreshInterval } = state; const { data } = action.payload; const live = isLive(refreshInterval); if (!live) { return state; } const newResults = seriesDataToLogsModel([data], queryIntervals.intervalMs); const rowsInState = sortLogsResult(state.logsResult, state.refreshInterval).rows; const processedRows = []; for (const row of rowsInState) { processedRows.push({ ...row, fresh: false }); } for (const row of newResults.rows) { processedRows.push({ ...row, fresh: true }); } const rows = processedRows.slice(processedRows.length - 1000, 1000); const logsResult: LogsModel = state.logsResult ? { ...state.logsResult, rows } : { hasUniqueLabels: false, rows }; return { ...state, logsResult, }; },
mapper: (state): ExploreItemState => { const logsResult = sortLogsResult(state.logsResult, state.refreshInterval); return { ...state, logsResult, graphIsLoading: true, logIsLoading: true, tableIsLoading: true, showingStartPage: false, update: makeInitialUpdateState(), }; },
mapper: (state, action): ExploreItemState => { const { refreshInterval } = action.payload; const live = isLive(refreshInterval); const logsResult = sortLogsResult(state.logsResult, refreshInterval); return { ...state, refreshInterval: refreshInterval, graphIsLoading: live ? true : false, tableIsLoading: live ? true : false, logIsLoading: live ? true : false, isLive: live, logsResult, }; },