Skip to content

Commit 9050b5c

Browse files
authored
Merge pull request backstage#18782 from AmbrishRamachandiran/master
Displaying an alert popup everytime the Playlist is created or deleted
2 parents 384d490 + e15359b commit 9050b5c

4 files changed

Lines changed: 41 additions & 4 deletions

File tree

.changeset/chilly-keys-count.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@backstage/plugin-playlist': patch
3+
---
4+
5+
Displaying an alert popup each time the Playlist is created or deleted

plugins/playlist/src/components/CreatePlaylistButton/CreatePlaylistButton.tsx

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,12 @@
1414
* limitations under the License.
1515
*/
1616

17-
import { errorApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';
17+
import {
18+
errorApiRef,
19+
useApi,
20+
useRouteRef,
21+
alertApiRef,
22+
} from '@backstage/core-plugin-api';
1823
import { BackstageTheme } from '@backstage/theme';
1924
import { usePermission } from '@backstage/plugin-permission-react';
2025
import {
@@ -34,6 +39,7 @@ import { useTitle } from '../../hooks';
3439
export const CreatePlaylistButton = () => {
3540
const navigate = useNavigate();
3641
const errorApi = useApi(errorApiRef);
42+
const alertApi = useApi(alertApiRef);
3743
const playlistApi = useApi(playlistApiRef);
3844
const playlistRoute = useRouteRef(playlistRouteRef);
3945
const [openDialog, setOpenDialog] = useState(false);
@@ -49,11 +55,16 @@ export const CreatePlaylistButton = () => {
4955
try {
5056
const playlistId = await playlistApi.createPlaylist(playlist);
5157
navigate(playlistRoute({ playlistId }));
58+
alertApi.post({
59+
message: `Added playlist '${playlist.name}'`,
60+
severity: 'success',
61+
display: 'transient',
62+
});
5263
} catch (e) {
5364
errorApi.post(e);
5465
}
5566
},
56-
[errorApi, navigate, playlistApi, playlistRoute],
67+
[errorApi, navigate, playlistApi, playlistRoute, alertApi],
5768
);
5869

5970
const singularTitle = useTitle({

plugins/playlist/src/components/EntityPlaylistDialog/EntityPlaylistDialog.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,11 @@ export const EntityPlaylistDialog = (props: EntityPlaylistDialogProps) => {
132132
stringifyEntityRef(entity!),
133133
]);
134134
navigate(playlistRoute({ playlistId }));
135+
alertApi.post({
136+
message: `Added playlist '${playlist.name}'`,
137+
severity: 'success',
138+
display: 'transient',
139+
});
135140
} catch (e) {
136141
alertApi.post({
137142
message: `Failed to add entity to ${singularTitleLowerCase}: ${e}`,

plugins/playlist/src/components/PlaylistPage/PlaylistHeader.tsx

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@ import {
1919
HeaderActionMenu,
2020
HeaderLabel,
2121
} from '@backstage/core-components';
22-
import { errorApiRef, useApi, useRouteRef } from '@backstage/core-plugin-api';
22+
import {
23+
errorApiRef,
24+
useApi,
25+
useRouteRef,
26+
alertApiRef,
27+
} from '@backstage/core-plugin-api';
2328
import { EntityRefLink } from '@backstage/plugin-catalog-react';
2429
import { usePermission } from '@backstage/plugin-permission-react';
2530
import {
@@ -72,6 +77,7 @@ export type PlaylistHeaderProps = {
7277
export const PlaylistHeader = ({ playlist, onUpdate }: PlaylistHeaderProps) => {
7378
const classes = useStyles();
7479
const errorApi = useApi(errorApiRef);
80+
const alertApi = useApi(alertApiRef);
7581
const playlistApi = useApi(playlistApiRef);
7682
const navigate = useNavigate();
7783
const rootRoute = useRouteRef(rootRouteRef);
@@ -94,17 +100,27 @@ export const PlaylistHeader = ({ playlist, onUpdate }: PlaylistHeaderProps) => {
94100
await playlistApi.updatePlaylist({ ...update, id: playlist.id });
95101
setOpenEditDialog(false);
96102
onUpdate();
103+
alertApi.post({
104+
message: `Updated playlist '${playlist.name}'`,
105+
severity: 'success',
106+
display: 'transient',
107+
});
97108
} catch (e) {
98109
errorApi.post(e);
99110
}
100111
},
101-
[errorApi, onUpdate, playlist, playlistApi],
112+
[errorApi, onUpdate, playlist, playlistApi, alertApi],
102113
);
103114

104115
const [deleting, deletePlaylist] = useAsyncFn(async () => {
105116
try {
106117
await playlistApi.deletePlaylist(playlist.id);
107118
navigate(rootRoute());
119+
alertApi.post({
120+
message: `Deleted playlist '${playlist.name}'`,
121+
severity: 'success',
122+
display: 'transient',
123+
});
108124
} catch (e) {
109125
errorApi.post(e);
110126
}

0 commit comments

Comments
 (0)