mirror of
https://github.com/grafana/grafana.git
synced 2025-02-12 08:35:43 -06:00
* Add integration with Jeager Add Jaeger datasource and modify derived fields in loki to allow for opening a trace in Jager in separate split. Modifies build so that this branch docker images are pushed to docker hub Add a traceui dir with docker-compose and provision files for demoing.:wq * Enable docker logger plugin to send logs to loki * Add placeholder zipkin datasource * Fixed rebase issues, added enhanceDataFrame to non-legacy code path * Trace selector for jaeger query field * Fix logs default mode for Loki * Fix loading jaeger query field services on split * Updated grafana image in traceui/compose file * Fix prettier error * Hide behind feature flag, clean up unused code. * Fix tests * Fix tests * Cleanup code and review feedback * Remove traceui directory * Remove circle build changes * Fix feature toggles object * Fix merge issues * Add trace ui in Explore * WIP * WIP * WIP * Make jaeger datasource return trace data instead of link * Allow js in jest tests * Return data from Jaeger datasource * Take yarn.lock from master * Fix missing component * Update yarn lock * Fix some ts and lint errors * Fix merge * Fix type errors * Make tests pass again * Add tests * Fix es5 compatibility * Add header with minimap * Fix sizing issue due to column resizer handle * Fix issues with sizing, search functionality, duplicate react, tests * Refactor TraceView component, fix tests * Fix type errors * Add dark theme styling * Add tests for hooks * More color changes * Fix tests to deal with additional theme wrappers. * Add memoization * Fix duplicate identifier Co-authored-by: David Kaltschmidt <david.kaltschmidt@gmail.com>
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { useCallback, useState } from 'react';
|
|
import { ViewRangeTimeUpdate, ViewRange } from '@jaegertracing/jaeger-ui-components';
|
|
|
|
/**
|
|
* Controls state of the zoom function that can be used through minimap in header or on the timeline. ViewRange contains
|
|
* state not only for current range that is showing but range that is currently being selected by the user.
|
|
*/
|
|
export function useViewRange() {
|
|
const [viewRange, setViewRange] = useState<ViewRange>({
|
|
time: {
|
|
current: [0, 1],
|
|
},
|
|
});
|
|
|
|
const updateNextViewRangeTime = useCallback(function updateNextViewRangeTime(update: ViewRangeTimeUpdate) {
|
|
setViewRange(
|
|
(prevRange): ViewRange => {
|
|
const time = { ...prevRange.time, ...update };
|
|
return { ...prevRange, time };
|
|
}
|
|
);
|
|
}, []);
|
|
|
|
const updateViewRangeTime = useCallback(function updateViewRangeTime(start: number, end: number) {
|
|
const current: [number, number] = [start, end];
|
|
const time = { current };
|
|
setViewRange(
|
|
(prevRange): ViewRange => {
|
|
return { ...prevRange, time };
|
|
}
|
|
);
|
|
}, []);
|
|
|
|
return { viewRange, updateViewRangeTime, updateNextViewRangeTime };
|
|
}
|