🏷️ Search for custom tailnet name offers with keywords.
1import { badgeColors } from '$config';
2import { log } from '$helpers/logging';
3import type { Token } from '$types/tokens';
4
5export const updateBadgeText = async () => {
6 try {
7 const result = await browser.storage.local.get(['tailscaleTokens']);
8 const tokens: Token[] = Array.isArray(result.tailscaleTokens)
9 ? result.tailscaleTokens
10 : [];
11 const validTokens = tokens.filter((t) => t?.token);
12 const count = validTokens.length;
13
14 const badgeText = count > 0 ? count.toString() : '0';
15 const badgeColor = count > 0 ? badgeColors.active : badgeColors.inactive;
16
17 if (browser.action) {
18 await browser.action.setBadgeText({ text: badgeText });
19 await browser.action.setBadgeBackgroundColor({ color: badgeColor });
20 } else if (browser.browserAction) {
21 await browser.browserAction.setBadgeText({ text: badgeText });
22 await browser.browserAction.setBadgeBackgroundColor({
23 color: badgeColor,
24 });
25 }
26 } catch (error) {
27 const errMsg = error instanceof Error ? error.message : 'Unknown error';
28 log(`Failed to update badge text: ${errMsg}`);
29 }
30};