mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import {createContext, useContext, useMemo} from 'react';
|
|
|
|
import {useMetricsMeta} from 'sentry/utils/metrics/useMetricsMeta';
|
|
import usePageFilters from 'sentry/utils/usePageFilters';
|
|
|
|
interface MetricsDashboardContextValue {
|
|
isLoading: boolean;
|
|
metricsMeta: ReturnType<typeof useMetricsMeta>['data'];
|
|
}
|
|
|
|
export const MetricsDashboardContext = createContext<MetricsDashboardContextValue>({
|
|
metricsMeta: [],
|
|
isLoading: false,
|
|
});
|
|
|
|
export function useMetricsDashboardContext() {
|
|
return useContext(MetricsDashboardContext);
|
|
}
|
|
|
|
export function MetricsDashboardContextProvider({children}: {children: React.ReactNode}) {
|
|
const pageFilters = usePageFilters().selection;
|
|
const metricsMetaQuery = useMetricsMeta(pageFilters);
|
|
|
|
const contextValue = useMemo(() => {
|
|
return {
|
|
metricsMeta: metricsMetaQuery.data,
|
|
isLoading: metricsMetaQuery.isLoading,
|
|
};
|
|
}, [metricsMetaQuery]);
|
|
|
|
return (
|
|
<MetricsDashboardContext.Provider value={contextValue}>
|
|
{children}
|
|
</MetricsDashboardContext.Provider>
|
|
);
|
|
}
|