mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
35 lines
777 B
React
35 lines
777 B
React
import React, { useEffect } from "react";
|
|
import { Link } from "react-router-dom";
|
|
|
|
const ForwardRefLink = React.forwardRef((props, ref) => {
|
|
const { children, setRefAndCid, onMouseOver, onMouseLeave, onClick, ...otherProps } = props;
|
|
|
|
const handleClick = (event) => {
|
|
if (otherProps.to === "#void") {
|
|
event.preventDefault();
|
|
}
|
|
if (onClick) {
|
|
onClick(event);
|
|
}
|
|
};
|
|
|
|
useEffect(() => {
|
|
if (ref.current && typeof setRefAndCid === 'function') {
|
|
setRefAndCid(ref.current);
|
|
}
|
|
}, [ref, setRefAndCid]);
|
|
|
|
return (
|
|
<Link
|
|
ref={ref}
|
|
{...otherProps}
|
|
onMouseOver={onMouseOver}
|
|
onMouseLeave={onMouseLeave}
|
|
onClick={handleClick}
|
|
>
|
|
{children}
|
|
</Link>
|
|
);
|
|
});
|
|
|
|
export default ForwardRefLink; |