saleor-dashboard/src/webhooks/handlers.ts

38 lines
991 B
TypeScript
Raw Normal View History

import { ChangeEvent } from "@saleor/hooks/useForm";
import {
WebhookEventTypeAsync,
WebhookEventTypeSync
} from "@saleor/types/globalTypes";
import { toggle } from "@saleor/utils/lists";
import { filterSelectedAsyncEvents } from "./utils";
export const createSyncEventsSelectHandler = (
change: (event: ChangeEvent, cb?: () => void) => void,
syncEvents: WebhookEventTypeSync[]
) => (event: ChangeEvent) => {
const events = toggle(event.target.value, syncEvents, (a, b) => a === b);
change({
target: {
name: "syncEvents",
value: events
}
});
};
export const createAsyncEventsSelectHandler = (
change: (event: ChangeEvent, cb?: () => void) => void,
asyncEvents: WebhookEventTypeAsync[]
) => (event: ChangeEvent) => {
const events = toggle(event.target.value, asyncEvents, (a, b) => a === b);
const filteredEvents = filterSelectedAsyncEvents(events);
change({
target: {
name: "asyncEvents",
value: filteredEvents
}
});
};