2019-10-09 06:01:52 +00:00
|
|
|
import Card from "@material-ui/core/Card";
|
|
|
|
import CardContent from "@material-ui/core/CardContent";
|
2019-10-09 20:50:03 +00:00
|
|
|
import Typography from "@material-ui/core/Typography";
|
2019-10-09 06:01:52 +00:00
|
|
|
import makeStyles from "@material-ui/styles/makeStyles";
|
|
|
|
import CardTitle from "@saleor/components/CardTitle";
|
|
|
|
import ControlledCheckbox from "@saleor/components/ControlledCheckbox";
|
|
|
|
import React from "react";
|
|
|
|
import { useIntl } from "react-intl";
|
2019-10-09 20:50:03 +00:00
|
|
|
import { WebhookEventTypeEnum } from "../../../types/globalTypes";
|
|
|
|
import { FormData } from "../WebhooksDetailsPage";
|
2019-10-09 06:01:52 +00:00
|
|
|
|
|
|
|
interface WebhookEventsProps {
|
|
|
|
data: FormData;
|
|
|
|
disabled: boolean;
|
|
|
|
onChange: (event: React.ChangeEvent<any>) => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
const useStyles = makeStyles(() => ({
|
|
|
|
item: {
|
|
|
|
paddingBottom: 10,
|
|
|
|
paddingTop: 10
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
|
|
|
const WebhookEvents: React.StatelessComponent<WebhookEventsProps> = ({
|
|
|
|
data,
|
|
|
|
disabled,
|
2019-10-09 20:50:03 +00:00
|
|
|
onChange
|
2019-10-09 06:01:52 +00:00
|
|
|
}) => {
|
|
|
|
const intl = useIntl();
|
2019-10-10 05:38:21 +00:00
|
|
|
const [events, setEvents] = React.useState(data.events);
|
2019-10-09 20:50:03 +00:00
|
|
|
|
|
|
|
const eventsEnum = Object.values(WebhookEventTypeEnum);
|
|
|
|
|
|
|
|
const addOrRemove = (array, value) => {
|
|
|
|
const index = array.indexOf(value);
|
|
|
|
|
|
|
|
if (index === -1) {
|
|
|
|
array.push(value);
|
|
|
|
} else {
|
|
|
|
array.splice(index, 1);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2019-10-10 05:38:21 +00:00
|
|
|
console.log(data.events);
|
|
|
|
|
2019-10-09 20:50:03 +00:00
|
|
|
const eventsOnChange = event => {
|
2019-10-10 05:38:21 +00:00
|
|
|
const newData = events;
|
|
|
|
addOrRemove(newData, event.target.name);
|
2019-10-09 20:50:03 +00:00
|
|
|
setEvents(newData);
|
2019-10-10 05:38:21 +00:00
|
|
|
console.log(events.indexOf(event.target.name));
|
2019-10-09 20:50:03 +00:00
|
|
|
};
|
|
|
|
|
2019-10-09 06:01:52 +00:00
|
|
|
return (
|
|
|
|
<Card>
|
|
|
|
<CardTitle
|
|
|
|
title={intl.formatMessage({
|
|
|
|
defaultMessage: "Events",
|
|
|
|
description: "section header"
|
|
|
|
})}
|
|
|
|
/>
|
2019-10-09 20:50:03 +00:00
|
|
|
<CardContent>
|
|
|
|
<Typography>
|
|
|
|
{intl.formatMessage({
|
|
|
|
defaultMessage:
|
|
|
|
"Expand or restrict webhooks permissions to register certain events in Saleor system.",
|
|
|
|
description: "webhook events"
|
|
|
|
})}
|
|
|
|
</Typography>
|
|
|
|
{eventsEnum.map((event, index) => (
|
|
|
|
<div key={index}>
|
|
|
|
<ControlledCheckbox
|
|
|
|
name={event}
|
|
|
|
label={event}
|
2019-10-10 05:38:21 +00:00
|
|
|
checked={events.includes(WebhookEventTypeEnum[event])}
|
2019-10-09 20:50:03 +00:00
|
|
|
onChange={eventsOnChange}
|
|
|
|
disabled={disabled}
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
))}
|
|
|
|
</CardContent>
|
2019-10-09 06:01:52 +00:00
|
|
|
</Card>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
WebhookEvents.displayName = "WebhookEvents";
|
|
|
|
export default WebhookEvents;
|