Files
grafana/public/app/features/dashboard/components/SubMenu/Annotations.tsx
Torkel Ödegaard 49b5fc4b9a Chore: More typescript strict null fixes, going for sub 200 (#26134)
* Chore: Fix typescript strict null errors

* Added new limit

* Fixed ts issue

* fixed tests

* trying to fix type inference

* Fixing more ts errors

* Revert tsconfig option

* Fix

* Fixed code

* More fixes

* fix tests

* Updated snapshot

* Chore: More ts strict null fixes

* More fixes in some really messed up azure config components

* More fixes, current count: 441

* 419

* More fixes

* Fixed invalid initial state in explore

* Fixing tests

* Fixed tests

* Explore fix

* More fixes

* Progress

* Sub 300

* Now at 218

* Progress

* Update

* Progress

* Updated tests

* at 159

* fixed tests

* Fixed test
2020-07-09 15:16:35 +02:00

40 lines
1.1 KiB
TypeScript

import React, { FunctionComponent, useEffect, useState } from 'react';
import { LegacyForms } from '@grafana/ui';
const { Switch } = LegacyForms;
interface Props {
annotations: any[];
onAnnotationChanged: (annotation: any) => void;
}
export const Annotations: FunctionComponent<Props> = ({ annotations, onAnnotationChanged }) => {
const [visibleAnnotations, setVisibleAnnotations] = useState<any>([]);
useEffect(() => {
setVisibleAnnotations(annotations.filter(annotation => annotation.hide !== true));
}, [annotations]);
if (visibleAnnotations.length === 0) {
return null;
}
return (
<>
{visibleAnnotations.map((annotation: any) => {
return (
<div
key={annotation.name}
className={annotation.enable ? 'submenu-item' : 'submenu-item annotation-disabled'}
>
<Switch
label={annotation.name}
className="gf-form"
checked={annotation.enable}
onChange={() => onAnnotationChanged(annotation)}
/>
</div>
);
})}
</>
);
};