import { useNavigate, useParams, useLocation } from 'react-router-dom'; import { useCallback } from 'react'; import { Links, Routes } from '../../pages/client-router'; export const useMarketClickHandler = (replace = false) => { const navigate = useNavigate(); const { marketId } = useParams(); const { pathname } = useLocation(); const isMarketPage = pathname.match(/^\/markets\/(.+)/); return useCallback( (selectedId: string, metaKey?: boolean) => { const link = Links[Routes.MARKET](selectedId); if (metaKey) { window.open(`/#${link}`, '_blank'); } else if (selectedId !== marketId || !isMarketPage) { navigate(link, { replace }); } }, [navigate, marketId, replace, isMarketPage] ); }; export const useMarketLiquidityClickHandler = () => { return useCallback((selectedId: string, metaKey?: boolean) => { window.open(`/#/liquidity/${selectedId}`, metaKey ? '_blank' : '_self'); }, []); };