Open History to see the last commit
1import type { PreviewSessionSnapshot } from "@t3tools/contracts";
2
3export function latestBrowserTab(tabs: ReadonlyArray<PreviewSessionSnapshot>) {
4 return tabs.reduce<PreviewSessionSnapshot | null>(
5 (latest, tab) => (latest === null || tab.updatedAt > latest.updatedAt ? tab : latest),
6 null,
7 );
8}
9
10export function browserTabUrl(tab: PreviewSessionSnapshot) {
11 return tab.navStatus._tag === "Idle" ? "" : tab.navStatus.url;
12}
13
14export function browserTabTitle(tab: PreviewSessionSnapshot) {
15 if (tab.navStatus._tag === "Idle") return "New tab";
16 if (tab.navStatus.title.trim()) return tab.navStatus.title;
17 try {
18 return new URL(tab.navStatus.url).host || tab.navStatus.url;
19 } catch {
20 return tab.navStatus.url;
21 }
22}