summaryrefslogtreecommitdiff
path: root/source/github-events/on-pr-merge-panel-open.ts
blob: 25d8eafc50591835e53139e43305a0829d52ddaf (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
// Memoization here is used to let onPrMergePanelOpen() be called multiple times without risking multiple attached handlers
import mem from 'mem';
import delegate, {DelegateEvent} from 'delegate-it';

const delegateHandler = mem((callback: EventListener) => (event: DelegateEvent) => {
	if (event.delegateTarget.matches('.open')) {
		callback(event);
	}
});

export default function onPrMergePanelOpen(callback: EventListener, signal: AbortSignal): void {
	delegate('.js-merge-pr:not(.is-rebasing)', 'details:toggled', delegateHandler(callback), {signal});
}