Files
hostinfo/components/Header.tsx
T
x da23868817 Add host info views and network error handling
Introduce modular host info UI components: Header, InfoRow,
CopyButton, and Browser/Local/Public views. Refactor ServerInfo to
compose these components.

Add network error handling: background listens for webRequest
onErrorOccurred and forwards errors to Tab.handleError. Implement
Tab.handleError to store friendly error info and Tab.processSystemPage
to handle browser/system pages.
2026-02-03 05:22:28 +01:00

32 lines
1023 B
TypeScript

import { browser } from 'wxt/browser';
export const Header = ({ title, flagCode }: { title: string, flagCode?: string | null }) => {
const getFlagUrl = (code?: string | null) => {
if (!code) return '';
try {
const path = `/${code.toLowerCase()}.webp`;
return browser.runtime.getURL(path as any);
} catch {
return '';
}
};
return (
<div className="px-5 py-4 bg-gray-50/50 dark:bg-gray-900/50 border-b border-gray-200 dark:border-gray-800 flex items-center justify-between">
<div className="min-w-0 pr-3">
<h1 className="text-base font-bold text-gray-900 dark:text-white truncate" title={title}>
{title}
</h1>
</div>
{flagCode && (
<img
src={getFlagUrl(flagCode)}
alt={flagCode}
className="w-8 h-auto rounded shadow-sm border border-gray-200 dark:border-gray-700 bg-white dark:bg-gray-800"
onError={(e) => (e.currentTarget.style.display = 'none')}
/>
)}
</div>
);
};