grafana/public/app/features/search/page/state/actions.ts
Ryan McKinley 0aad61d0ac
Search: add a simple search page (behind feature flag) (#45487)
Co-authored-by: nmarrs <nathanielmarrs@gmail.com>
2022-03-03 14:56:14 -08:00

40 lines
1.1 KiB
TypeScript

import { DataFrameView } from '@grafana/data';
import { ThunkResult } from 'app/types';
import { getDashboardData, filterDataFrame } from '../data';
import { DashboardResult } from '../types';
import { fetchResults } from './reducers';
export const loadResults = (query: string): ThunkResult<void> => {
return async (dispatch) => {
const data = await getDashboardData();
if (!data.dashboards || !data.panels) {
return;
}
if (!data.dashboards.length || !query.length) {
return dispatch(
fetchResults({
data: {
dashboards: new DataFrameView<DashboardResult>(data.dashboards),
panels: data.panels,
},
})
);
}
const dashboards = filterDataFrame(query, data.dashboards, 'Name', 'Description', 'Tags');
const panels = filterDataFrame(query, data.panels, 'Name', 'Description', 'Type');
return dispatch(
fetchResults({
data: {
dashboards: new DataFrameView<DashboardResult>(dashboards),
panels: panels,
},
})
);
};
};