import * as React from 'react'; import {useEffect, useState} from 'react'; import browser, {Tabs} from 'webextension-polyfill'; function openWebPage(url: string): Promise { return browser.tabs.create({url}); } interface TabInfo { title: string; url: string; favIconUrl?: string; } const Popup: React.FC = () => { const [tabInfo, setTabInfo] = useState(null); useEffect(() => { browser.tabs.query({active: true, currentWindow: true}).then((tabs) => { const tab = tabs[0]; if (tab) { setTabInfo({ title: tab.title || 'Unknown', url: tab.url || 'Unknown', favIconUrl: tab.favIconUrl, }); } }); }, []); const handleReloadTab = async (): Promise => { const tabs = await browser.tabs.query({active: true, currentWindow: true}); const tab = tabs[0]; if (tab?.id) { await browser.tabs.reload(tab.id); } }; const getInitial = (title: string): string => { return title.charAt(0).toUpperCase(); }; return (

Web Extension Starter

{tabInfo && (
Current Tab
{tabInfo.favIconUrl ? ( ) : (
{getInitial(tabInfo.title)}
)}

{tabInfo.title}

{tabInfo.url}

)}
); }; export default Popup;