(page: ExtensionPage)
| 183 | } |
| 184 | |
| 185 | export async function openExtensionPage(page: ExtensionPage): Promise<void> { |
| 186 | const url = chrome.runtime.getURL(`/ui/${page}/index.html`); |
| 187 | if (isMobile || page === 'options') { |
| 188 | const extensionPageTab = await getExtensionPageTab(url); |
| 189 | if (extensionPageTab !== null) { |
| 190 | chrome.tabs.update(extensionPageTab.id!, {active: true}); |
| 191 | window.close(); |
| 192 | } else { |
| 193 | chrome.tabs.create({url}); |
| 194 | window.close(); |
| 195 | } |
| 196 | } else { |
| 197 | const extensionPageTab = await getExtensionPageTab(url); |
| 198 | if (extensionPageTab !== null) { |
| 199 | chrome.windows.update(extensionPageTab.windowId, {focused: true}); |
| 200 | window.close(); |
| 201 | } else { |
| 202 | chrome.windows.create({ |
| 203 | type: 'popup', |
| 204 | url, |
| 205 | width: 800, |
| 206 | height: 600, |
| 207 | }); |
| 208 | window.close(); |
| 209 | } |
| 210 | } |
| 211 | } |
no test coverage detected