import { goto } from '$app/navigation';

/* eslint-disable */
export function linkedArticle(
	node: HTMLElement,
	parameters: { url: string } | undefined
): {
	destroy: () => void;
} {
	const a = node.querySelector('a');
	let pathname = '';
	if (a && !parameters) {
		const url = new URL(a.href);
		pathname = url.pathname;
	} else if (parameters) {
		pathname = parameters.url;
	}
	function handleClick(event: MouseEvent) {
		event.preventDefault();
		if (window) {
			const selObj = window.getSelection();
			if (selObj) {
				const noTextSelected = selObj.toString();
				if (!noTextSelected && pathname) {
					goto(pathname);
				}
			}
		}
	}
	node.addEventListener('click', handleClick);
	return {
		destroy() {
			node.removeEventListener('click', handleClick);
		}
	};
}
/* eslint-enable */