@modern-kit/react
Version:
39 lines (37 loc) • 1.47 kB
TypeScript
/**
* @description 여러 이벤트 핸들러를 하나의 핸들러로 병합합니다.
*
* 이벤트 핸들러가 반환하는 값이 `false`일 경우 이후 전달된 이벤트 핸들러의 실행을 중단합니다.
*
* @param {((event: E) => boolean | void)[]} handlers 병합할 이벤트 핸들러 배열
* @returns {((event: E) => void)} 병합된 이벤트 핸들러
*
* @example
* const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
* console.log('clicked');
* };
* const handleClick2 = (event: React.MouseEvent<HTMLButtonElement>) => {
* console.log('clicked2');
* };
*
* const mergedEventHandler = mergeEventHandlers(handleClick, handleClick2);
*
* @example
* // 이벤트 핸들러가 반환하는 값이 `false`일 경우 이후 전달된 이벤트 핸들러의 실행을 중단합니다.
* const handleClick1 = (event: React.MouseEvent<HTMLButtonElement>) => {
* console.log('clicked');
*
* // 짝수일 경우 false를 반환하여 이후 전달된 이벤트 핸들러의 실행을 중단합니다.
* if (num % 2 === 0) {
* return false;
* }
* };
*
* const handleClick2 = (event: React.MouseEvent<HTMLButtonElement>) => {
* console.log('clicked2');
* };
*
* const mergedEventHandler = mergeEventHandlers(handleClick1, handleClick2);
*/
declare const mergeEventHandlers: <E>(...handlers: ((event: E) => boolean | void)[]) => ((event: E) => void);
export { mergeEventHandlers };