import { useEffect } from "react" interface PageVariables { ogTitle?: string ogDescription?: string metaDescription?: string title?: string url?: string selectionText?: string } export const usePage = (callback: (arg0: PageVariables) => void) => { useEffect(() => { chrome.tabs.executeScript(null, { code: ` var ogTitle = document.querySelector('meta[name="og:title"]'); var ogDescription = document.querySelector('meta[name="og:description"]'); var metaDescription = document.querySelector('meta[name="description"]'); var selection = window.getSelection(); var url = location.href; ({ ogTitle: ogTitle && ogTitle.content, ogDescription: ogDescription && ogDescription.content, metaDescription: metaDescription && metaDescription.content, title: document.title, url: location.href, selectionText: selection && selection.toString(), });` }, ([result]) => callback(result as PageVariables) ) }, []) }