about summary refs log tree commit diff
path: root/src/lib/strings
diff options
context:
space:
mode:
authorHailey <me@haileyok.com>2024-07-03 18:15:08 -0700
committerGitHub <noreply@github.com>2024-07-04 02:15:08 +0100
commitaa7117edb60711a67464f7559118334185f01680 (patch)
treeb0ccd3d7ef0d792613542a1af48c3fbae1f36f21 /src/lib/strings
parenta3d4fb652b888ba81aecbf0e81a954968ea65d39 (diff)
downloadvoidsky-aa7117edb60711a67464f7559118334185f01680.tar.zst
Add starter pack embeds to posts (#4699)
* starter pack embeds

* revert test code

* Types

* add `BaseLink`

* precache on click

* rm log

* add a comment

* loading state

* top margin

---------

Co-authored-by: Dan Abramov <dan.abramov@gmail.com>
Diffstat (limited to 'src/lib/strings')
-rw-r--r--src/lib/strings/starter-pack.ts2
-rw-r--r--src/lib/strings/url-helpers.ts24
2 files changed, 25 insertions, 1 deletions
diff --git a/src/lib/strings/starter-pack.ts b/src/lib/strings/starter-pack.ts
index 01b5a6587..ca3410015 100644
--- a/src/lib/strings/starter-pack.ts
+++ b/src/lib/strings/starter-pack.ts
@@ -96,7 +96,7 @@ export function createStarterPackUri({
 }: {
   did: string
   rkey: string
-}): string | null {
+}): string {
   return new AtUri(`at://${did}/app.bsky.graph.starterpack/${rkey}`).toString()
 }
 
diff --git a/src/lib/strings/url-helpers.ts b/src/lib/strings/url-helpers.ts
index 948279fce..742c7ef79 100644
--- a/src/lib/strings/url-helpers.ts
+++ b/src/lib/strings/url-helpers.ts
@@ -152,6 +152,30 @@ export function isBskyListUrl(url: string): boolean {
   return false
 }
 
+export function isBskyStartUrl(url: string): boolean {
+  if (isBskyAppUrl(url)) {
+    try {
+      const urlp = new URL(url)
+      return /start\/(?<name>[^/]+)\/(?<rkey>[^/]+)/i.test(urlp.pathname)
+    } catch {
+      console.error('Unexpected error in isBskyStartUrl()', url)
+    }
+  }
+  return false
+}
+
+export function isBskyStarterPackUrl(url: string): boolean {
+  if (isBskyAppUrl(url)) {
+    try {
+      const urlp = new URL(url)
+      return /starter-pack\/(?<name>[^/]+)\/(?<rkey>[^/]+)/i.test(urlp.pathname)
+    } catch {
+      console.error('Unexpected error in isBskyStartUrl()', url)
+    }
+  }
+  return false
+}
+
 export function isBskyDownloadUrl(url: string): boolean {
   if (isExternalUrl(url)) {
     return false