Playlist: cleanup object store implementation (#58201)

This commit is contained in:
Ryan McKinley
2022-11-03 16:35:20 -07:00
committed by GitHub
parent 376f4b0cc7
commit 3dfa49b376
4 changed files with 48 additions and 26 deletions

View File

@@ -1,4 +1,4 @@
import React, { useMemo } from 'react';
import React, { useMemo, useState } from 'react';
import { selectors } from '@grafana/e2e-selectors';
import { config } from '@grafana/runtime';
@@ -18,6 +18,7 @@ interface Props {
}
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'] });
@@ -25,9 +26,14 @@ export const PlaylistForm = ({ onSubmit, playlist }: Props) => {
const { items, addById, addByTag, deleteItem, moveItem } = usePlaylistItems(propItems);
const doSubmit = (list: Playlist) => {
setSaving(true);
onSubmit({ ...list, items });
};
return (
<div>
<Form onSubmit={(list: Playlist) => onSubmit({ ...list, items })} validateOn={'onBlur'}>
<Form onSubmit={doSubmit} validateOn={'onBlur'}>
{({ register, errors }) => {
const isDisabled = items.length === 0 || Object.keys(errors).length > 0;
return (
@@ -73,7 +79,12 @@ export const PlaylistForm = ({ onSubmit, playlist }: Props) => {
</div>
<HorizontalGroup>
<Button type="submit" variant="primary" disabled={isDisabled}>
<Button
type="submit"
variant="primary"
disabled={isDisabled}
icon={saving ? 'fa fa-spinner' : undefined}
>
Save
</Button>
<LinkButton variant="secondary" href={`${config.appSubUrl}/playlists`}>