Fix webhooks evetns checkbox

This commit is contained in:
Krzysztof Bialoglowicz 2019-10-17 16:39:37 +02:00
parent 844931cd6b
commit c276096041
3 changed files with 8 additions and 18 deletions

View file

@ -8,6 +8,7 @@ import { ChangeEvent } from "@saleor/hooks/useForm";
import { WebhookEventTypeEnum } from "@saleor/types/globalTypes"; import { WebhookEventTypeEnum } from "@saleor/types/globalTypes";
import React from "react"; import React from "react";
import { useIntl } from "react-intl"; import { useIntl } from "react-intl";
import { toggle } from "@saleor/utils/lists";
interface WebhookEventsProps { interface WebhookEventsProps {
data: { data: {
@ -57,26 +58,13 @@ const WebhookEvents: React.StatelessComponent<WebhookEventsProps> = ({
}) })
}; };
const handleAllEventsChange = (event: ChangeEvent) => const handleEventsChange = (event: ChangeEvent) =>
onChange(event, () =>
onChange({ onChange({
target: { target: {
name: "events", name: "events",
value: event.target.value ? WebhookEventTypeEnum.ANY_EVENTS : [] value: toggle(event.target.name, data.events, (a, b) => a === b)
}
})
);
const handleEventsChange = (event: ChangeEvent) => {
onChange({
target: {
name: "events",
value: event.target.value
? data.events.concat([event.target.name])
: data.events.filter(events => events !== event.target.name)
} }
}); });
};
return ( return (
<Card> <Card>
@ -99,7 +87,7 @@ const WebhookEvents: React.StatelessComponent<WebhookEventsProps> = ({
disabled={disabled} disabled={disabled}
label={translatedEvents.ANY_EVENTS} label={translatedEvents.ANY_EVENTS}
name="allEvents" name="allEvents"
onChange={handleAllEventsChange} onChange={onChange}
/> />
{!data.allEvents && ( {!data.allEvents && (
<> <>

View file

@ -60,7 +60,9 @@ const WebhooksDetailsPage: React.FC<WebhooksDetailsPageProps> = ({
allEvents: !!maybe(() => webhook.events, []).find( allEvents: !!maybe(() => webhook.events, []).find(
event => event.eventType === WebhookEventTypeEnum.ANY_EVENTS event => event.eventType === WebhookEventTypeEnum.ANY_EVENTS
), ),
events: maybe(() => webhook.events, []).map(event => event.eventType), events: maybe(() => webhook.events, [])
.map(event => event.eventType)
.filter(event => event !== WebhookEventTypeEnum.ANY_EVENTS),
id: maybe(() => webhook.id, null), id: maybe(() => webhook.id, null),
isActive: maybe(() => webhook.isActive, false), isActive: maybe(() => webhook.isActive, false),
name: maybe(() => webhook.name, ""), name: maybe(() => webhook.name, ""),

View file

@ -129,7 +129,7 @@ export const WebhooksDetails: React.FC<WebhooksDetailsProps> = ({
input: { input: {
events: data.allEvents events: data.allEvents
? [WebhookEventTypeEnum.ANY_EVENTS] ? [WebhookEventTypeEnum.ANY_EVENTS]
: data.events.slice(1), : data.events,
isActive: data.isActive, isActive: data.isActive,
name: data.name, name: data.name,
secretKey: data.secretKey, secretKey: data.secretKey,