about summary refs log tree commit diff
path: root/src/state/models/navigation.ts
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2022-11-21 16:07:26 -0600
committerPaul Frazee <pfrazee@gmail.com>2022-11-21 16:07:26 -0600
commited146a582c140b9a472298390dafbc07bd06cf60 (patch)
treebd540e4a84244fdbdbdf5fde412fc4a179b6dae5 /src/state/models/navigation.ts
parent39058cd36a9839df0e0c7e30ba486a09e30f169c (diff)
downloadvoidsky-ed146a582c140b9a472298390dafbc07bd06cf60.tar.zst
Add web linking and proper share controls
Diffstat (limited to 'src/state/models/navigation.ts')
-rw-r--r--src/state/models/navigation.ts18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/state/models/navigation.ts b/src/state/models/navigation.ts
index 0ec097afc..a4d7d443b 100644
--- a/src/state/models/navigation.ts
+++ b/src/state/models/navigation.ts
@@ -222,6 +222,24 @@ export class NavigationModel {
     this.tabs.find(t => t.id === ptr[0])?.setTitle(ptr[1], title)
   }
 
+  handleLink(url: string) {
+    let path
+    if (url.startsWith('/')) {
+      path = url
+    } else if (url.startsWith('http')) {
+      try {
+        path = new URL(url).pathname
+      } catch (e) {
+        console.error('Invalid url', url, e)
+        return
+      }
+    } else {
+      console.error('Invalid url', url)
+      return
+    }
+    this.navigate(path)
+  }
+
   // tab management
   // =