diff --git a/src/background.ts b/src/background.ts index e5edd54..7ba6390 100644 --- a/src/background.ts +++ b/src/background.ts @@ -23,6 +23,20 @@ async function scrap() { return await runScrapper(tab, options); } +async function openInRows(message: { data: string; }) { + const tab = await getCurrentTab(); + + if (!tab || !tab.url || !tab.title) { + return; + } + + const tabUrl = tab.url; + + chrome.tabs.create({ url: 'https://rows.com/new' }, (tab) => { + return storeRowsXData(message.data, tab.id!).then(() => reportUsage({ action: 'open_in_Rows', url: tabUrl })); + }); +} + async function storeRowsXData(tsv: string, tabId: number) { await chrome.scripting.executeScript({ target: { tabId }, @@ -39,9 +53,7 @@ chrome.runtime.onMessage.addListener((message, _, sendResponse) => { scrap().then((data) => sendResponse(data)); break; case 'rows-x:store': - chrome.tabs.create({ url: 'https://rows.com/new' }, (tab) => { - return storeRowsXData(message.data, tab.id!).then(() => reportUsage({action: 'open_in_Rows'})); - }); + openInRows(message); break; default: break; diff --git a/src/utils/rows-api/report.ts b/src/utils/rows-api/report.ts index 0ea5e59..96f6db3 100644 --- a/src/utils/rows-api/report.ts +++ b/src/utils/rows-api/report.ts @@ -4,6 +4,7 @@ import UAParser from 'ua-parser-js'; interface ReportUsageParams { action: 'copy_values' | 'open_in_Rows'; + url?: string; } export async function createNewReportEntryRow(feedback? : string) { @@ -42,8 +43,8 @@ export async function reportUsage(params: ReportUsageParams): Promise { const row_cells = [ new Date(), - tab.url, - new URL(tab.url!).hostname, + params.url ? params.url : tab.url, + new URL(params.url ? params.url : tab.url!).hostname, userAgent.getBrowser().name, userAgent.getBrowser().version, action,