import { useMemo, useState } from 'react'; import { selectors } from '@grafana/e2e-selectors'; import { config } from '@grafana/runtime'; import { Button, Field, FieldSet, Input, LinkButton, Stack } from '@grafana/ui'; import { Form } from 'app/core/components/Form/Form'; import { DashboardPicker } from 'app/core/components/Select/DashboardPicker'; import { TagFilter } from 'app/core/components/TagFilter/TagFilter'; import { Trans, t } from 'app/core/internationalization'; import { getGrafanaSearcher } from '../search/service/searcher'; import { PlaylistTable } from './PlaylistTable'; import { Playlist } from './types'; import { usePlaylistItems } from './usePlaylistItems'; interface Props { onSubmit: (playlist: Playlist) => void; playlist: Playlist; } export const PlaylistForm = ({ onSubmit, playlist }: Props) => { const [saving, setSaving] = useState(false); const { name, interval, items: propItems } = playlist; const tagOptions = useMemo(() => { return () => getGrafanaSearcher().tags({ kind: ['dashboard'] }); }, []); const { items, addByUID, addByTag, deleteItem, moveItem } = usePlaylistItems(propItems); const doSubmit = (list: Playlist) => { setSaving(true); onSubmit({ ...list, items, uid: playlist.uid }); }; return (
); };