import React from 'react';
import { config, featureEnabled } from '@grafana/runtime';
import { isExpressionReference } from '@grafana/runtime/src/utils/DataSourceWithBackend';
import { GroupActionComponents, RowActionComponents } from 'app/features/query/components/QueryActionComponent';
import { store, dispatch } from 'app/store/store';
import { EnterpriseStoreState } from '../types';
import { RecordedQueryAddModal } from './RecordedQueryAddModal';
import { CreateRecordedQuery } from './RecordedQueryCreateModal';
import { getPrometheusWriteTarget } from './state/actions';
const hasWriteTarget = (): boolean => {
const state = store.getState() as EnterpriseStoreState;
const target = state.recordedQueries.prometheusWriteTarget;
return Boolean(target?.data_source_uid) && Boolean(target?.remote_write_path);
};
export function initRecordedQueries() {
const showRecordQuery = featureEnabled('recordedqueries') && config?.recordedQueries?.enabled;
if (!showRecordQuery) {
return;
}
dispatch(getPrometheusWriteTarget());
RowActionComponents.addExtraRenderAction((props) =>
hasWriteTarget() && (props.dataSource?.meta.backend || isExpressionReference(props.dataSource)) ? (
) : null
);
GroupActionComponents.addExtraRenderAction((props) =>
hasWriteTarget() ? : null
);
}