mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
* Initial commit, list and edit page working * Progress * angular and standard editors work * Unifying more between annotations list and links list * Remove submenu visibilty stuff * Update packages/grafana-data/src/types/annotations.ts Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> * Review feedback * fixed checkbox * Fixes * test(annotationsettings): initial commit of tests * delete files brought back by master merge * update datasourcepicker import path * update emotion import * test(linksettings): clean up tests * Fixed test * test(annotationssettings): add remaining tests * docs(grafana-data): export namespace for docs build * docs(grafana-ui): export ColorValueEditorProps for docs build * docs(grafana-ui): add docs annotation for ColorValueEditorProps Co-authored-by: Alex Khomenko <Clarity-89@users.noreply.github.com> Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
import React, { useState } from 'react';
|
|
import { DashboardModel } from '../../state/DashboardModel';
|
|
import { AnnotationSettingsEdit, AnnotationSettingsList } from '../AnnotationSettings';
|
|
import { newAnnotation } from '../AnnotationSettings/AnnotationSettingsEdit';
|
|
import { DashboardSettingsHeader } from './DashboardSettingsHeader';
|
|
|
|
interface Props {
|
|
dashboard: DashboardModel;
|
|
}
|
|
|
|
export const AnnotationsSettings: React.FC<Props> = ({ dashboard }) => {
|
|
const [editIdx, setEditIdx] = useState<number | null>(null);
|
|
|
|
const onGoBack = () => {
|
|
setEditIdx(null);
|
|
};
|
|
|
|
const onNew = () => {
|
|
dashboard.annotations.list = [...dashboard.annotations.list, { ...newAnnotation }];
|
|
setEditIdx(dashboard.annotations.list.length - 1);
|
|
};
|
|
|
|
const onEdit = (idx: number) => {
|
|
setEditIdx(idx);
|
|
};
|
|
|
|
const isEditing = editIdx !== null;
|
|
|
|
return (
|
|
<>
|
|
<DashboardSettingsHeader title="Annotations" onGoBack={onGoBack} isEditing={isEditing} />
|
|
{!isEditing && <AnnotationSettingsList dashboard={dashboard} onNew={onNew} onEdit={onEdit} />}
|
|
{isEditing && <AnnotationSettingsEdit dashboard={dashboard} editIdx={editIdx!} />}
|
|
</>
|
|
);
|
|
};
|