⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.72
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
grafana
/
public
/
app
/
features
/
playlist
/
View File Name :
PlaylistCard.tsx
import { css } from '@emotion/css'; import React from 'react'; import Skeleton from 'react-loading-skeleton'; import { GrafanaTheme2 } from '@grafana/data'; import { Button, Card, LinkButton, ModalsController, Stack, useStyles2 } from '@grafana/ui'; import { attachSkeleton, SkeletonComponent } from '@grafana/ui/src/unstable'; import { t, Trans } from 'app/core/internationalization'; import { contextSrv } from 'app/core/services/context_srv'; import { DashNavButton } from 'app/features/dashboard/components/DashNav/DashNavButton'; import { ShareModal } from './ShareModal'; import { Playlist } from './types'; interface Props { setStartPlaylist: (playlistItem: Playlist) => void; setPlaylistToDelete: (playlistItem: Playlist) => void; playlist: Playlist; } const PlaylistCardComponent = ({ playlist, setStartPlaylist, setPlaylistToDelete }: Props) => { return (
{playlist.name}
{({ showModal, hideModal }) => (
{ showModal(ShareModal, { playlistUid: playlist.uid, onDismiss: hideModal, }); }} /> )}
setStartPlaylist(playlist)}>
Start playlist
{contextSrv.isEditor && ( <>
Edit playlist
setPlaylistToDelete(playlist)} icon="trash-alt" variant="destructive" >
Delete playlist
> )}
); }; const PlaylistCardSkeleton: SkeletonComponent = ({ rootProps }) => { const skeletonStyles = useStyles2(getSkeletonStyles); return (
{contextSrv.isEditor && ( <>
> )}
); }; export const PlaylistCard = attachSkeleton(PlaylistCardComponent, PlaylistCardSkeleton); function getSkeletonStyles(theme: GrafanaTheme2) { return { button: css({ lineHeight: 1, }), }; }