navidrome/ui/src/playlist/PlaylistEdit.js

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

70 lines
1.8 KiB
JavaScript
Raw Normal View History

import React, { Fragment } from 'react'
2020-05-12 03:27:00 +02:00
import {
Edit,
FormDataConsumer,
2020-05-12 03:27:00 +02:00
SimpleForm,
TextInput,
2020-07-18 01:56:19 +02:00
TextField,
2020-05-12 03:27:00 +02:00
BooleanInput,
required,
useTranslate,
usePermissions,
ReferenceInput,
SelectInput,
2020-05-12 03:27:00 +02:00
} from 'react-admin'
import { isWritable, Title } from '../common'
2020-05-12 03:27:00 +02:00
const SyncFragment = ({ formData, variant, ...rest }) => {
return (
<Fragment>
{formData.path && <BooleanInput source="sync" {...rest} />}
{formData.path && <TextField source="path" {...rest} />}
</Fragment>
)
}
const PlaylistTitle = ({ record }) => {
const translate = useTranslate()
const resourceName = translate('resources.playlist.name', { smart_count: 1 })
return <Title subTitle={`${resourceName} "${record ? record.name : ''}"`} />
}
2021-10-23 03:11:44 +02:00
const PlaylistEditForm = (props) => {
const { record } = props
const { permissions } = usePermissions()
2021-10-23 03:11:44 +02:00
return (
<SimpleForm redirect="list" variant={'outlined'} {...props}>
2020-05-12 03:27:00 +02:00
<TextInput source="name" validate={required()} />
2020-07-18 01:56:19 +02:00
<TextInput multiline source="comment" />
{permissions === 'admin' ? (
<ReferenceInput
source="ownerId"
reference="user"
perPage={0}
sort={{ field: 'name', order: 'ASC' }}
>
<SelectInput
label={'resources.playlist.fields.ownerName'}
optionText="userName"
/>
</ReferenceInput>
) : (
<TextField source="ownerName" />
)}
<BooleanInput source="public" disabled={!isWritable(record.ownerId)} />
<FormDataConsumer>
{(formDataProps) => <SyncFragment {...formDataProps} />}
</FormDataConsumer>
2020-05-12 03:27:00 +02:00
</SimpleForm>
2021-10-23 03:11:44 +02:00
)
}
const PlaylistEdit = (props) => (
<Edit title={<PlaylistTitle />} actions={false} {...props}>
2021-10-23 03:11:44 +02:00
<PlaylistEditForm {...props} />
2020-05-12 03:27:00 +02:00
</Edit>
)
export default PlaylistEdit