about summary refs log tree commit diff
path: root/src/lib/link-meta
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-03-13 16:01:43 -0500
committerGitHub <noreply@github.com>2023-03-13 16:01:43 -0500
commit56cf890debeb9872f791ccb992a5587f2c05fd9e (patch)
tree929453b41274a712d8b2fce441e98a0cd030d305 /src/lib/link-meta
parent503e03d91e1de4bfeabec1eb2d97dcdceb13fcc5 (diff)
downloadvoidsky-56cf890debeb9872f791ccb992a5587f2c05fd9e.tar.zst
Move to expo and react-navigation (#288)
* WIP - adding expo

* WIP - adding expo 2

* Fix tsc

* Finish adding expo

* Disable the 'require cycle' warning

* Tweak plist

* Modify some dependency versions to make expo happy

* Fix icon fill

* Get Web compiling for expo

* 1.7

* Switch to react-navigation in expo2 (#287)

* WIP Switch to react-navigation

* WIP Switch to react-navigation 2

* WIP Switch to react-navigation 3

* Convert all screens to react navigation

* Update BottomBar for react navigation

* Update mobile menu to be react-native drawer

* Fixes to drawer and bottombar

* Factor out some helpers

* Replace the navigation model with react-navigation

* Restructure the shell folder and fix the header positioning

* Restore the error boundary

* Fix tsc

* Implement not-found page

* Remove react-native-gesture-handler (no longer used)

* Handle notifee card presses

* Handle all navigations from the state layer

* Fix drawer behaviors

* Fix two linking issues

* Switch to our react-native-progress fork to fix an svg rendering issue

* Get Web working with react-navigation

* Refactor routes and navigation for a bit more clarity

* Remove dead code

* Rework Web shell to left/right nav to make this easier

* Fix ViewHeader for desktop web

* Hide profileheader back btn on desktop web

* Move the compose button to the left nav

* Implement reply prompt in threads for desktop web

* Composer refactors

* Factor out all platform-specific text input behaviors from the composer

* Small fix

* Update the web build to use tiptap for the composer

* Tune up the mention autocomplete dropdown

* Simplify the default avatar and banner

* Fixes to link cards in web composer

* Fix dropdowns on web

* Tweak load latest on desktop

* Add web beta message and feedback link

* Fix up links in desktop web
Diffstat (limited to 'src/lib/link-meta')
-rw-r--r--src/lib/link-meta/bsky.ts153
1 files changed, 77 insertions, 76 deletions
diff --git a/src/lib/link-meta/bsky.ts b/src/lib/link-meta/bsky.ts
index c9c2ed31a..0d8e8c69b 100644
--- a/src/lib/link-meta/bsky.ts
+++ b/src/lib/link-meta/bsky.ts
@@ -1,19 +1,20 @@
 import {LikelyType, LinkMeta} from './link-meta'
-import {match as matchRoute} from 'view/routes'
+// import {match as matchRoute} from 'view/routes'
 import {convertBskyAppUrlIfNeeded, makeRecordUri} from '../strings/url-helpers'
 import {RootStoreModel} from 'state/index'
 import {PostThreadViewModel} from 'state/models/post-thread-view'
 import {ComposerOptsQuote} from 'state/models/shell-ui'
 
-import {Home} from 'view/screens/Home'
-import {Search} from 'view/screens/Search'
-import {Notifications} from 'view/screens/Notifications'
-import {PostThread} from 'view/screens/PostThread'
-import {PostUpvotedBy} from 'view/screens/PostUpvotedBy'
-import {PostRepostedBy} from 'view/screens/PostRepostedBy'
-import {Profile} from 'view/screens/Profile'
-import {ProfileFollowers} from 'view/screens/ProfileFollowers'
-import {ProfileFollows} from 'view/screens/ProfileFollows'
+// TODO
+// import {Home} from 'view/screens/Home'
+// import {Search} from 'view/screens/Search'
+// import {Notifications} from 'view/screens/Notifications'
+// import {PostThread} from 'view/screens/PostThread'
+// import {PostUpvotedBy} from 'view/screens/PostUpvotedBy'
+// import {PostRepostedBy} from 'view/screens/PostRepostedBy'
+// import {Profile} from 'view/screens/Profile'
+// import {ProfileFollowers} from 'view/screens/ProfileFollowers'
+// import {ProfileFollows} from 'view/screens/ProfileFollows'
 
 // NOTE
 // this is a hack around the lack of hosted social metadata
@@ -24,77 +25,77 @@ export async function extractBskyMeta(
   url: string,
 ): Promise<LinkMeta> {
   url = convertBskyAppUrlIfNeeded(url)
-  const route = matchRoute(url)
+  // const route = matchRoute(url)
   let meta: LinkMeta = {
     likelyType: LikelyType.AtpData,
     url,
-    title: route.defaultTitle,
+    // title: route.defaultTitle,
   }
 
-  if (route.Com === Home) {
-    meta = {
-      ...meta,
-      title: 'Bluesky',
-      description: 'A new kind of social network',
-    }
-  } else if (route.Com === Search) {
-    meta = {
-      ...meta,
-      title: 'Search - Bluesky',
-      description: 'A new kind of social network',
-    }
-  } else if (route.Com === Notifications) {
-    meta = {
-      ...meta,
-      title: 'Notifications - Bluesky',
-      description: 'A new kind of social network',
-    }
-  } else if (
-    route.Com === PostThread ||
-    route.Com === PostUpvotedBy ||
-    route.Com === PostRepostedBy
-  ) {
-    // post and post-related screens
-    const threadUri = makeRecordUri(
-      route.params.name,
-      'app.bsky.feed.post',
-      route.params.rkey,
-    )
-    const threadView = new PostThreadViewModel(store, {
-      uri: threadUri,
-      depth: 0,
-    })
-    await threadView.setup().catch(_err => undefined)
-    const title = [
-      route.Com === PostUpvotedBy
-        ? 'Likes on a post by'
-        : route.Com === PostRepostedBy
-        ? 'Reposts of a post by'
-        : 'Post by',
-      threadView.thread?.post.author.displayName ||
-        threadView.thread?.post.author.handle ||
-        'a bluesky user',
-    ].join(' ')
-    meta = {
-      ...meta,
-      title,
-      description: threadView.thread?.postRecord?.text,
-    }
-  } else if (
-    route.Com === Profile ||
-    route.Com === ProfileFollowers ||
-    route.Com === ProfileFollows
-  ) {
-    // profile and profile-related screens
-    const profile = await store.profiles.getProfile(route.params.name)
-    if (profile?.data) {
-      meta = {
-        ...meta,
-        title: profile.data.displayName || profile.data.handle,
-        description: profile.data.description,
-      }
-    }
-  }
+  // if (route.Com === Home) {
+  //   meta = {
+  //     ...meta,
+  //     title: 'Bluesky',
+  //     description: 'A new kind of social network',
+  //   }
+  // } else if (route.Com === Search) {
+  //   meta = {
+  //     ...meta,
+  //     title: 'Search - Bluesky',
+  //     description: 'A new kind of social network',
+  //   }
+  // } else if (route.Com === Notifications) {
+  //   meta = {
+  //     ...meta,
+  //     title: 'Notifications - Bluesky',
+  //     description: 'A new kind of social network',
+  //   }
+  // } else if (
+  //   route.Com === PostThread ||
+  //   route.Com === PostUpvotedBy ||
+  //   route.Com === PostRepostedBy
+  // ) {
+  //   // post and post-related screens
+  //   const threadUri = makeRecordUri(
+  //     route.params.name,
+  //     'app.bsky.feed.post',
+  //     route.params.rkey,
+  //   )
+  //   const threadView = new PostThreadViewModel(store, {
+  //     uri: threadUri,
+  //     depth: 0,
+  //   })
+  //   await threadView.setup().catch(_err => undefined)
+  //   const title = [
+  //     route.Com === PostUpvotedBy
+  //       ? 'Likes on a post by'
+  //       : route.Com === PostRepostedBy
+  //       ? 'Reposts of a post by'
+  //       : 'Post by',
+  //     threadView.thread?.post.author.displayName ||
+  //       threadView.thread?.post.author.handle ||
+  //       'a bluesky user',
+  //   ].join(' ')
+  //   meta = {
+  //     ...meta,
+  //     title,
+  //     description: threadView.thread?.postRecord?.text,
+  //   }
+  // } else if (
+  //   route.Com === Profile ||
+  //   route.Com === ProfileFollowers ||
+  //   route.Com === ProfileFollows
+  // ) {
+  //   // profile and profile-related screens
+  //   const profile = await store.profiles.getProfile(route.params.name)
+  //   if (profile?.data) {
+  //     meta = {
+  //       ...meta,
+  //       title: profile.data.displayName || profile.data.handle,
+  //       description: profile.data.description,
+  //     }
+  //   }
+  // }
 
   return meta
 }