38 lines
991 B
TypeScript
38 lines
991 B
TypeScript
![]() |
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
|
||
|
}
|
||
|
});
|
||
|
};
|