mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* LibraryPanels: Separates name from panel title * WIP * Chore: fixes update for duplicate lib panels * Chore: reverts implementation * Chore: show library options only for library panels * Chore: ui fixes after PR comments * Chore: fixes issue when creating library panels
49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import { Input } from '@grafana/ui';
|
|
import React from 'react';
|
|
import { OptionsPaneItemDescriptor } from './OptionsPaneItemDescriptor';
|
|
import { OptionsPaneCategoryDescriptor } from './OptionsPaneCategoryDescriptor';
|
|
import { OptionPaneRenderProps } from './types';
|
|
import { isPanelModelLibraryPanel } from '../../../library-panels/guard';
|
|
import { LibraryPanelInformation } from 'app/features/library-panels/components/LibraryPanelInfo/LibraryPanelInfo';
|
|
|
|
export function getLibraryPanelOptionsCategory(props: OptionPaneRenderProps): OptionsPaneCategoryDescriptor {
|
|
const { panel, onPanelConfigChange, dashboard } = props;
|
|
const descriptor = new OptionsPaneCategoryDescriptor({
|
|
title: 'Library panel options',
|
|
id: 'Library panel options',
|
|
isOpenDefault: true,
|
|
});
|
|
|
|
if (isPanelModelLibraryPanel(panel)) {
|
|
descriptor
|
|
.addItem(
|
|
new OptionsPaneItemDescriptor({
|
|
title: 'Name',
|
|
value: panel.libraryPanel.name,
|
|
popularRank: 1,
|
|
render: function renderName() {
|
|
return (
|
|
<Input
|
|
id="LibraryPanelFrameName"
|
|
defaultValue={panel.libraryPanel.name}
|
|
onBlur={(e) =>
|
|
onPanelConfigChange('libraryPanel', { ...panel.libraryPanel, name: e.currentTarget.value })
|
|
}
|
|
/>
|
|
);
|
|
},
|
|
})
|
|
)
|
|
.addItem(
|
|
new OptionsPaneItemDescriptor({
|
|
title: 'Information',
|
|
render: function renderLibraryPanelInformation() {
|
|
return <LibraryPanelInformation panel={panel} formatDate={dashboard.formatDate} />;
|
|
},
|
|
})
|
|
);
|
|
}
|
|
|
|
return descriptor;
|
|
}
|