import { Card, makeStyles } from '@material-ui/core'
import React, { useCallback } from 'react'
import {
DateField,
EditContextProvider,
required,
SaveButton,
SimpleForm,
TextInput,
Toolbar,
useEditController,
useMutation,
useNotify,
useRedirect,
} from 'react-admin'
import DeleteRadioButton from './DeleteRadioButton'
const useStyles = makeStyles({
toolbar: {
display: 'flex',
justifyContent: 'space-between',
},
})
function urlValidate(value) {
if (!value) {
return undefined
}
try {
new URL(value)
return undefined
} catch (_) {
return 'ra.validation.url'
}
}
const RadioToolbar = (props) => (
)
const RadioEditLayout = ({
hasCreate,
hasShow,
hasEdit,
hasList,
...props
}) => {
const [mutate] = useMutation()
const notify = useNotify()
const redirect = useRedirect()
const { record } = props
const save = useCallback(
async (values) => {
try {
await mutate(
{
type: 'update',
resource: 'radio',
payload: {
id: values.id,
data: {
name: values.name,
streamUrl: values.streamUrl,
homePageUrl: values.homePageUrl,
},
},
},
{ returnPromise: true }
)
notify('resources.radio.notifications.updated', 'info', {
smart_count: 1,
})
redirect('/radio')
} catch (error) {
if (error.body.errors) {
return error.body.errors
}
}
},
[mutate, notify, redirect]
)
if (!record) {
return null
}
return (
<>
{record && (
}
{...props}
>
)}
>
)
}
const RadioEdit = (props) => {
const controllerProps = useEditController(props)
return (
)
}
export default RadioEdit