Skip to content

Instantly share code, notes, and snippets.

@finom
Created October 5, 2022 18:15
Show Gist options
  • Save finom/68c3afd4a3fa37448716fd132e214f5c to your computer and use it in GitHub Desktop.
Save finom/68c3afd4a3fa37448716fd132e214f5c to your computer and use it in GitHub Desktop.
QuerySelector react element
import { useEffect } from 'react';
interface Props {
selector: string;
className?: string;
onClick: (evt: Event) => void;
}
const QuerySelector = ({
selector,
className,
onClick,
}: Props) => {
useEffect(() => {
const element = document.querySelector(selector);
if (element) {
if (typeof className !== 'undefined') {
element.className = className;
}
if (typeof onClick !== 'undefined') {
element.addEventListener('click', onClick);
}
return () => {
if (typeof onClick !== 'undefined') {
element.removeEventListener('click', onClick);
}
};
}
return () => {};
}, [className, onClick, selector]);
return null;
};
export default QuerySelector;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment