diff --git a/.prettierrc.json b/.prettierrc.json index f018e5c..0ad740f 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -2,6 +2,5 @@ "arrowParens": "avoid", "tabWidth": 4, "trailingComma": "none", - "quoteProps": "consistent", - "plugins": ["prettier-plugin-svelte"] + "quoteProps": "consistent" } diff --git a/ext/src/background/ReceiverSelector.ts b/ext/src/background/ReceiverSelector.ts index 2d9314f..da8d27f 100644 --- a/ext/src/background/ReceiverSelector.ts +++ b/ext/src/background/ReceiverSelector.ts @@ -5,23 +5,15 @@ import messaging, { Port, Message } from "../messaging"; import options from "../lib/options"; import { TypedEventTarget } from "../lib/TypedEventTarget"; -import { SessionRequest } from "../cast/sdk/classes"; import { ReceiverDevice, ReceiverSelectionActionType, - ReceiverSelectorMediaType + ReceiverSelectorMediaType, + ReceiverSelectorPageInfo } from "../types"; const POPUP_URL = browser.runtime.getURL("ui/popup/index.html"); -/** Info about sender page context. */ -export interface ReceiverSelectorPageInfo { - url: string; - tabId: number; - frameId: number; - sessionRequest?: SessionRequest; -} - export interface ReceiverSelectionCast { actionType: ReceiverSelectionActionType.Cast; receiverDevice: ReceiverDevice; diff --git a/ext/src/background/menus.ts b/ext/src/background/menus.ts index 9c0fc1d..b7a289f 100644 --- a/ext/src/background/menus.ts +++ b/ext/src/background/menus.ts @@ -30,9 +30,6 @@ let menuIdCastMedia: MenuId; let menuIdWhitelist: MenuId; let menuIdWhitelistRecommended: MenuId; -export const menuIdPopupCast = "popup_cast"; -export const menuIdPopupStop = "popup_stop"; - /** Match patterns for the whitelist option menus. */ const whitelistChildMenuPatterns = new Map(); @@ -79,12 +76,12 @@ export async function initMenus() { // Popup context menus const popupUrlPattern = `${browser.runtime.getURL("ui/popup")}/*`; browser.menus.create({ - id: menuIdPopupCast, + id: "popup_cast", title: _("popupCastButtonTitle"), documentUrlPatterns: [popupUrlPattern] }); browser.menus.create({ - id: menuIdPopupStop, + id: "popup_stop", title: _("popupStopButtonTitle"), documentUrlPatterns: [popupUrlPattern] }); diff --git a/ext/src/types.ts b/ext/src/types.ts index 21695fa..7c24645 100644 --- a/ext/src/types.ts +++ b/ext/src/types.ts @@ -1,5 +1,6 @@ "use strict"; +import { SessionRequest } from "./cast/sdk/classes"; import { ReceiverStatus } from "./cast/sdk/types"; export enum ReceiverDeviceCapabilities { @@ -32,3 +33,11 @@ export enum ReceiverSelectionActionType { Cast = 1, Stop = 2 } + +/** Info about sender page context. */ +export interface ReceiverSelectorPageInfo { + url: string; + tabId: number; + frameId: number; + sessionRequest?: SessionRequest; +} diff --git a/ext/src/ui/popup/Popup.svelte b/ext/src/ui/popup/Popup.svelte index df80edf..c224394 100644 --- a/ext/src/ui/popup/Popup.svelte +++ b/ext/src/ui/popup/Popup.svelte @@ -3,9 +3,6 @@ import LoadingIndicator from "../LoadingIndicator.svelte"; - import { ReceiverSelectorPageInfo } from "../../background/ReceiverSelector"; - import { menuIdPopupCast, menuIdPopupStop } from "../../background/menus"; - import messaging, { Message, Port } from "../../messaging"; import options, { Options } from "../../lib/options"; import { RemoteMatchPattern } from "../../lib/matchPattern"; @@ -13,7 +10,8 @@ import { ReceiverDevice, ReceiverSelectionActionType, - ReceiverSelectorMediaType + ReceiverSelectorMediaType, + ReceiverSelectorPageInfo } from "../../types"; import knownApps, { KnownApp } from "../../cast/knownApps"; @@ -272,13 +270,13 @@ const device = getDeviceFromElement(target); if (!device) { - browser.menus.update(menuIdPopupCast, { visible: false }); - browser.menus.update(menuIdPopupStop, { visible: false }); + browser.menus.update("popup_cast", { visible: false }); + browser.menus.update("popup_stop", { visible: false }); } else { const app = device.status?.applications?.[0]; const isAppRunning = !!(app && !app.isIdleScreen); - browser.menus.update(menuIdPopupCast, { + browser.menus.update("popup_cast", { visible: true, title: _("popupCastMenuTitle", device.friendlyName), enabled: @@ -288,7 +286,7 @@ isMediaTypeAvailable }); - browser.menus.update(menuIdPopupStop, { + browser.menus.update("popup_stop", { visible: isAppRunning, title: isAppRunning ? _("popupStopMenuTitle", [ @@ -305,8 +303,8 @@ /** Handle click events for receiver context menus. */ function onMenuClicked(info: browser.menus.OnClickData) { if ( - info.menuItemId !== menuIdPopupCast && - info.menuItemId !== menuIdPopupStop + info.menuItemId !== "popup_cast" && + info.menuItemId !== "popup_stop" ) { return; } @@ -319,10 +317,10 @@ if (!device) return; switch (info.menuItemId) { - case menuIdPopupCast: + case "popup_cast": onReceiverCast(device); break; - case menuIdPopupStop: + case "popup_stop": onReceiverStop(device); break; } diff --git a/tsconfig.json b/tsconfig.json index 00393c9..d59ccd4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -9,5 +9,5 @@ "target": "es6", "strict": true }, - "exclude": ["node_modules/**/*", "dist/**/*"] + "exclude": ["node_modules/**/*", "**/node_modules/**/*", "dist/**/*"] }