| Server IP : 193.146.211.90 / Your IP : 10.85.6.55 Web Server : Apache System : Linux wordpress-gti-69dcdb54f7-n4wdq 6.11.8-arch1-2 #1 SMP PREEMPT_DYNAMIC Fri, 15 Nov 2024 15:35:07 +0000 x86_64 User : 1001 ( 1001) PHP Version : 8.2.25 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /bitnami/wordpress/wp-content/plugins/presto-player/src/router/ |
Upload File : |
const { useContext } = wp.element;
import { RouterContext, history } from "./context";
import classNames from "classnames";
import { match } from "path-to-regexp";
export function Link(props) {
const { to, onClick, children, activeClassName } = props;
const { route } = useContext(RouterContext);
let state = { ...props };
delete state.activeClassName;
const isActive = () => {
const checkMatch = match(`${to}`);
return checkMatch(`${route.hash.substr(1)}`);
};
const handleClick = (e) => {
e.preventDefault();
// Dont' navigate if current path
if (route.path === to) {
return;
}
// Trigger onClick prop manually
if (onClick) {
onClick(e);
}
const { search } = history.location;
// Use history API to navigate page
history.push(`${search}#${to}`);
};
return (
<a
{...state}
className={classNames({ [activeClassName]: isActive() }, props.className)}
onClick={handleClick}
>
{children}
</a>
);
}