mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
* 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
40 lines
1.1 KiB
TypeScript
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>
|
|
);
|
|
})}
|
|
</>
|
|
);
|
|
};
|