diff --git a/.gitignore b/.gitignore
index 98d0ba7..4f288db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,7 @@ stats-*.json
.wxt
.wxt-runner
web-ext.config.ts
+web-ext-artifacts
# Editor directories and files
.vscode/*
diff --git a/package.json b/package.json
index ed6492b..b623bc2 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "at-fronter",
"description": "view who was fronting when a record was made",
"private": true,
- "version": "0.0.0",
+ "version": "0.0.1",
"type": "module",
"scripts": {
"dev": "wxt",
diff --git a/src/entrypoints/background.ts b/src/entrypoints/background.ts
index 0e85c25..2c3c02a 100644
--- a/src/entrypoints/background.ts
+++ b/src/entrypoints/background.ts
@@ -1,6 +1,7 @@
import { expect } from "@/lib/result";
import {
type Fronter,
+ fronterGetSocialAppHrefs,
fronterGetSocialAppHref,
getFronter,
getSpFronters,
@@ -80,10 +81,12 @@ export default defineBackground({
browser.tabs.sendMessage(sender.tab?.id!, {
type: "TIMELINE_FRONTER",
results: new Map(
- results.map((fronter) => [
- fronterGetSocialAppHref(fronter, fronter.rkey),
- fronter,
- ]),
+ results.flatMap((fronter) =>
+ fronterGetSocialAppHrefs(fronter, fronter.rkey).map((href) => [
+ href,
+ fronter,
+ ]),
+ ),
),
});
};
@@ -126,10 +129,12 @@ export default defineBackground({
(await Promise.allSettled(allPromises))
.filter((result) => result.status === "fulfilled")
.flatMap((result) => result.value ?? [])
- .map((fronter) => [
- fronterGetSocialAppHref(fronter, fronter.rkey),
- fronter,
- ]),
+ .flatMap((fronter) =>
+ fronterGetSocialAppHrefs(fronter, fronter.rkey).map((href) => [
+ href,
+ fronter,
+ ]),
+ ),
);
browser.tabs.sendMessage(sender.tab?.id!, {
type: "TIMELINE_FRONTER",
@@ -170,10 +175,11 @@ export default defineBackground({
(await Promise.allSettled(promises))
.filter((result) => result.status === "fulfilled")
.flatMap((result) => result.value ?? [])
- .map((fronter) => [
- fronterGetSocialAppHref(fronter, fronter.rkey, fronter.depth),
- fronter,
- ]),
+ .flatMap((fronter) =>
+ fronterGetSocialAppHrefs(fronter, fronter.rkey, fronter.depth).map(
+ (href) => [href, fronter],
+ ),
+ ),
);
browser.tabs.sendMessage(sender.tab?.id!, {
type: "THREAD_FRONTER",
diff --git a/src/entrypoints/content.ts b/src/entrypoints/content.ts
index 29f1a26..1be76bd 100644
--- a/src/entrypoints/content.ts
+++ b/src/entrypoints/content.ts
@@ -2,6 +2,7 @@ import { expect } from "@/lib/result";
import {
Fronter,
fronterGetSocialAppHref,
+ fronterGetSocialAppHrefs,
parseSocialAppPostUrl,
} from "@/lib/utils";
import { parseResourceUri, ResourceUri } from "@atcute/lexicons";
@@ -145,7 +146,10 @@ export default defineContentScript({
fronters.entries().flatMap(([uri, fronter]) => {
if (!fronter) return [];
const rkey = expect(parseResourceUri(uri)).rkey!;
- return [[fronterGetSocialAppHref(fronter, rkey), fronter]];
+ return fronterGetSocialAppHrefs(fronter, rkey).map((href) => [
+ href,
+ fronter,
+ ]);
}),
);
applyFrontersToPage(updated);
diff --git a/src/entrypoints/popup/App.svelte b/src/entrypoints/popup/App.svelte
index efed9fc..5386825 100644
--- a/src/entrypoints/popup/App.svelte
+++ b/src/entrypoints/popup/App.svelte
@@ -9,9 +9,10 @@
let isQuerying = $state(false);
let fronterName = $state("");
let spToken = $state("");
+ let isFromCurrentTab = $state(false);
const makeOutput = (fronter: any) => {
- return `HANDLE: ${fronter.handle ?? "handle.invalid"}
FRONTER: ${fronter.fronterName}`;
+ return `HANDLE: ${fronter.handle ?? "handle.invalid"}
FRONTER(S): ${fronter.names.join(", ")}`;
};
const queryRecord = async (recordUri: ResourceUri) => {
@@ -50,6 +51,7 @@
const clearResult = () => {
queryResult = "";
recordAtUri = "";
+ isFromCurrentTab = false;
};
onMount(async () => {
@@ -73,16 +75,13 @@
if (tabFronter) {
queryResult = makeOutput(tabFronter);
recordAtUri = tabFronter.recordUri;
+ isFromCurrentTab = true;
}
});