mirror of
https://github.com/grafana/grafana.git
synced 2025-02-03 20:21:01 -06:00
Canvas: Update metric value text for no data (#65372)
This commit is contained in:
parent
f43ef18732
commit
a8adfe83b5
@ -22,20 +22,36 @@ const dummyFieldSettings: StandardEditorsRegistryItem<string, FieldNamePickerCon
|
||||
} as StandardEditorsRegistryItem<string, FieldNamePickerConfigSettings>;
|
||||
|
||||
const MetricValueDisplay = (props: CanvasElementProps<TextConfig, TextData>) => {
|
||||
const { data, isSelected } = props;
|
||||
const { data, isSelected, config } = props;
|
||||
const styles = useStyles2(getStyles(data));
|
||||
|
||||
const context = usePanelContext();
|
||||
const scene = context.instanceState?.scene;
|
||||
let panelData: DataFrame[];
|
||||
panelData = context.instanceState?.scene?.data.series;
|
||||
|
||||
const isEditMode = useObservable<boolean>(scene?.editModeEnabled ?? of(false));
|
||||
|
||||
const getDisplayValue = () => {
|
||||
if (panelData && config.text?.field && fieldNotFound()) {
|
||||
return 'Field not found';
|
||||
}
|
||||
|
||||
return data?.text ? data.text : 'Double click to set field';
|
||||
};
|
||||
|
||||
const fieldNotFound = () => {
|
||||
const field = panelData.filter((series) => series.fields.find((field) => field.name === config.text?.field));
|
||||
return !field.length;
|
||||
};
|
||||
|
||||
if (isEditMode && isSelected) {
|
||||
return <MetricValueEdit {...props} />;
|
||||
}
|
||||
|
||||
return (
|
||||
<div className={styles.container}>
|
||||
<span className={styles.span}>{data?.text ? data.text : 'Double click to set field'}</span>
|
||||
<span className={styles.span}>{getDisplayValue()}</span>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
@ -48,6 +64,7 @@ const MetricValueEdit = (props: CanvasElementProps<TextConfig, TextData>) => {
|
||||
|
||||
const onFieldChange = useCallback(
|
||||
(field) => {
|
||||
console.log('onfieldchange', field);
|
||||
let selectedElement: ElementState;
|
||||
selectedElement = context.instanceState?.selected[0];
|
||||
if (selectedElement) {
|
||||
|
Loading…
Reference in New Issue
Block a user