Skip to content

Commit b45b944

Browse files
fix: Prevent time range context error when opening trace details slideover (#7418)
* fix: Prevent time range context error when opening trace details slideover * Remove extraneous type cast
1 parent e9ead03 commit b45b944

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

app/src/components/datetime/TimeRangeContext.tsx

+6-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,12 @@ export const TimeRangeContext = createContext<TimeRangeContextType | null>(
1717
null
1818
);
1919

20-
export function useTimeRange(): TimeRangeContextType {
21-
const context = React.useContext(TimeRangeContext);
20+
export function useNullableTimeRangeContext() {
21+
return React.useContext(TimeRangeContext);
22+
}
23+
24+
export function useTimeRange() {
25+
const context = useNullableTimeRangeContext();
2226
if (context === null) {
2327
throw new Error(
2428
"useTimeRange must be used within a TimeRangeContextProvider"

app/src/components/trace/SpanAnnotationsEditor.tsx

+5-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import {
2424
Icons,
2525
Loading,
2626
Popover,
27-
useTimeRange,
27+
useNullableTimeRangeContext,
2828
View,
2929
} from "@phoenix/components";
3030
import { Annotation, AnnotationConfig } from "@phoenix/components/annotation";
@@ -273,7 +273,10 @@ function SpanAnnotationsList(props: {
273273
);
274274
const annotationConfigs = data.project?.annotationConfigs?.configs;
275275
const annotationConfigsLength = annotationConfigs?.length ?? 0;
276-
const { timeRange } = useTimeRange();
276+
// time range is nullable in this context
277+
// we only use it to refresh fragments after mutations so it is ok to not have a time range context
278+
const timeRangeContext = useNullableTimeRangeContext();
279+
const timeRange = timeRangeContext?.timeRange;
277280

278281
const [commitDeleteAnnotation] =
279282
useMutation<SpanAnnotationsEditorDeleteAnnotationMutation>(graphql`

0 commit comments

Comments
 (0)