link-stack/apps/metamigo-frontend/app/_components/webhooks/WebhookEdit.tsx

49 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-06-28 12:55:24 +00:00
"use client";
2023-02-13 12:41:30 +00:00
import {
SimpleForm,
TextInput,
Edit,
ArrayInput,
SimpleFormIterator,
regex,
required,
EditProps,
FormDataConsumer,
} from "react-admin";
import { BackendTypeInput, BackendIdInput, HttpMethodInput } from "./shared";
2023-03-14 17:40:24 +00:00
const WebhookTitle = ({ record }: any) => {
2023-02-13 12:41:30 +00:00
let title = "";
2023-03-15 12:17:43 +00:00
if (record) title = record.name ?? record.email;
2023-02-13 12:41:30 +00:00
return <span>Webhook {title}</span>;
};
2023-03-15 12:17:43 +00:00
const WebhookEdit = (props: EditProps) => (
<Edit title={<WebhookTitle />} {...props}>
<SimpleForm>
<TextInput source="name" validate={[required()]} />
<BackendTypeInput />
<FormDataConsumer subscription={{ values: true }}>
{BackendIdInput}
</FormDataConsumer>
<TextInput
source="endpointUrl"
validate={[required(), regex(/^https?:\/\/[^/]+/, "validation.url")]}
/>
<HttpMethodInput />
<ArrayInput source="headers">
<SimpleFormIterator>
<TextInput
source="header"
validate={[required(), regex(/^[\w-]+$/, "validation.headerName")]}
/>
<TextInput source="value" validate={[required()]} />
</SimpleFormIterator>
</ArrayInput>
</SimpleForm>
</Edit>
);
2023-02-13 12:41:30 +00:00
export default WebhookEdit;