import React, { useEffect, useState } from 'react'; import { Button, ConfirmModal, useStyles2 } from '@grafana/ui'; import { LogGroup } from '../types'; import getStyles from './styles'; type CrossAccountLogsQueryProps = { selectedLogGroups: LogGroup[]; onChange: (selectedLogGroups: LogGroup[]) => void; }; const MAX_VISIBLE_LOG_GROUPS = 6; export const SelectedLogsGroups = ({ selectedLogGroups, onChange }: CrossAccountLogsQueryProps) => { const styles = useStyles2(getStyles); const [showConfirm, setShowConfirm] = useState(false); const [visibleSelectecLogGroups, setVisibleSelectecLogGroups] = useState( selectedLogGroups.slice(0, MAX_VISIBLE_LOG_GROUPS) ); useEffect(() => { setVisibleSelectecLogGroups(selectedLogGroups.slice(0, MAX_VISIBLE_LOG_GROUPS)); }, [selectedLogGroups]); return ( <>
{visibleSelectecLogGroups.map((lg) => ( ))} {visibleSelectecLogGroups.length !== selectedLogGroups.length && ( )} {selectedLogGroups.length > 0 && ( )}
{ setShowConfirm(false); onChange([]); }} onDismiss={() => setShowConfirm(false)} /> ); };