import {
Datagrid,
FunctionField,
BooleanField,
List,
NumberField,
SimpleList,
TextField,
useNotify,
useTranslate,
} from 'react-admin'
import React from 'react'
import { IconButton, Link, useMediaQuery } from '@material-ui/core'
import ShareIcon from '@material-ui/icons/Share'
import { DateField, QualityInfo } from '../common'
import { shareUrl } from '../utils'
import config from '../config'
export const FormatInfo = ({ record, size }) => {
const r = { suffix: record.format, bitRate: record.maxBitRate }
r.suffix =
r.suffix || (r.bitRate ? config.defaultDownsamplingFormat : 'Original')
return
}
const ShareList = (props) => {
const isXsmall = useMediaQuery((theme) => theme.breakpoints.down('xs'))
const isDesktop = useMediaQuery((theme) => theme.breakpoints.up('lg'))
const translate = useTranslate()
const notify = useNotify()
const handleShare = (r) => (e) => {
const url = shareUrl(r?.id)
if (navigator.clipboard && window.isSecureContext) {
navigator.clipboard
.writeText(url)
.then(() => {
notify(translate('message.shareSuccess', { url }), {
type: 'info',
multiLine: true,
duration: 0,
})
})
.catch((err) => {
notify(
translate('message.shareFailure', { url }) + ': ' + err.message,
{
type: 'warning',
multiLine: true,
duration: 0,
}
)
})
} else prompt(translate('message.shareCopyToClipboard'), url)
e.preventDefault()
e.stopPropagation()
}
return (
{isXsmall ? (
(
)}
primaryText={(r) => r.description || r.contents || r.id}
secondaryText={(r) => (
<>
{translate('resources.share.fields.expiresAt')}:{' '}
>
)}
tertiaryText={(r) =>
`${translate('resources.share.fields.visitCount')}: ${
r.visitCount || '0'
}`
}
/>
) : (
(
{
e.stopPropagation()
}}
>
{r.id}
)}
/>
{isDesktop && }
{isDesktop && }
{config.enableDownloads && }
{isDesktop && (
)}
)}
)
}
export default ShareList