49 lines
1.3 KiB
TypeScript
49 lines
1.3 KiB
TypeScript
import {
|
|
SimpleForm,
|
|
TextInput,
|
|
Edit,
|
|
FormDataConsumer,
|
|
SelectInput,
|
|
BooleanInput,
|
|
ReferenceInput,
|
|
required,
|
|
EditProps,
|
|
} from "react-admin";
|
|
import TwilioLanguages from "./twilio-languages";
|
|
import { VoiceInput, PromptInput } from "./shared";
|
|
import MicInput from "./MicInput";
|
|
|
|
const VoiceLineTitle = ({ record }: { record?: any }) => {
|
|
let title = "";
|
|
if (record) title = record.name ?? record.email;
|
|
return <span>VoiceLine {title}</span>;
|
|
};
|
|
|
|
const VoiceLineEdit = (props: EditProps) => (
|
|
<Edit title={<VoiceLineTitle />} {...props}>
|
|
<SimpleForm>
|
|
<ReferenceInput
|
|
disabled
|
|
label="Provider"
|
|
source="providerId"
|
|
reference="providers"
|
|
validate={[required()]}
|
|
>
|
|
<SelectInput optionText={(p) => `${p.kind}: ${p.name}`} />
|
|
</ReferenceInput>
|
|
<TextInput disabled source="providerLineSid" />
|
|
<TextInput disabled source="number" />
|
|
<SelectInput source="language" choices={TwilioLanguages.languages} />
|
|
<FormDataConsumer subscription={{ values: true }}>
|
|
{VoiceInput}
|
|
</FormDataConsumer>
|
|
<FormDataConsumer subscription={{ values: true }}>
|
|
{PromptInput}
|
|
</FormDataConsumer>
|
|
<BooleanInput source="audioPromptEnabled" />
|
|
<MicInput source="promptAudio" />
|
|
</SimpleForm>
|
|
</Edit>
|
|
);
|
|
|
|
export default VoiceLineEdit;
|