mirror of
https://github.com/grafana/grafana.git
synced 2025-09-21 00:44:21 +08:00

Co-authored-by: nmarrs <nathanielmarrs@gmail.com> Co-authored-by: Adela Almasan <adela.almasan@grafana.com> Co-authored-by: drew08t <drew08@gmail.com> Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
import React, { useState } from 'react';
|
|
|
|
import { config } from '@grafana/runtime/src';
|
|
import { Alert, Tab, TabsBar, TabContent } from '@grafana/ui';
|
|
import { Page } from 'app/core/components/Page/Page';
|
|
|
|
import { useNavModel } from '../../../core/hooks/useNavModel';
|
|
|
|
import { Queries } from './Queries';
|
|
|
|
const initialTabs = [
|
|
{
|
|
label: 'Queries',
|
|
active: true,
|
|
},
|
|
];
|
|
|
|
const QueryLibraryPage = () => {
|
|
const navModel = useNavModel('query');
|
|
|
|
const [tabs, setTabs] = useState(initialTabs);
|
|
|
|
if (!config.featureToggles.panelTitleSearch) {
|
|
return <Alert title="Missing feature toggle: panelTitleSearch">Query library requires searchV2</Alert>;
|
|
}
|
|
|
|
return (
|
|
<Page navModel={navModel}>
|
|
<Page.Contents>
|
|
<TabsBar>
|
|
{tabs.map((tab, index) => (
|
|
<Tab
|
|
key={index}
|
|
label={tab.label}
|
|
active={tab.active}
|
|
onChangeTab={() => setTabs(tabs.map((tab, idx) => ({ ...tab, active: idx === index })))}
|
|
/>
|
|
))}
|
|
</TabsBar>
|
|
<TabContent>{tabs[0].active && <Queries />}</TabContent>
|
|
</Page.Contents>
|
|
</Page>
|
|
);
|
|
};
|
|
|
|
export default QueryLibraryPage;
|