``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
22 lines
620 B
TypeScript
22 lines
620 B
TypeScript
import { MouseEvent, useCallback } from "react";
|
|
|
|
/**
|
|
* Prevents click events from propagating to parent elements.
|
|
* @param onClick The function to call when the element is clicked.
|
|
* @returns A function that will prevent the click event from propagating.
|
|
*/
|
|
export const useUnpropagatedClick = (
|
|
onClick?: (event: MouseEvent, ...args: unknown[]) => void
|
|
) => {
|
|
const handleClick = useCallback(
|
|
(event: MouseEvent, ...args: unknown[]) => {
|
|
event.stopPropagation();
|
|
event.nativeEvent.stopImmediatePropagation();
|
|
onClick?.(event, ...args);
|
|
},
|
|
[onClick]
|
|
);
|
|
|
|
return handleClick;
|
|
};
|