about summary refs log tree commit diff
path: root/src/view/routes.ts
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/view/routes.ts
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/view/routes.ts')
-rw-r--r--src/view/routes.ts91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/view/routes.ts b/src/view/routes.ts
deleted file mode 100644
index 1cd9ef8e2..000000000
--- a/src/view/routes.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import React from 'react'
-import {IconProp} from '@fortawesome/fontawesome-svg-core'
-import {Home} from './screens/Home'
-import {Contacts} from './screens/Contacts'
-import {Search} from './screens/Search'
-import {Notifications} from './screens/Notifications'
-import {NotFound} from './screens/NotFound'
-import {PostThread} from './screens/PostThread'
-import {PostUpvotedBy} from './screens/PostUpvotedBy'
-import {PostDownvotedBy} from './screens/PostDownvotedBy'
-import {PostRepostedBy} from './screens/PostRepostedBy'
-import {Profile} from './screens/Profile'
-import {ProfileFollowers} from './screens/ProfileFollowers'
-import {ProfileFollows} from './screens/ProfileFollows'
-import {Settings} from './screens/Settings'
-import {Debug} from './screens/Debug'
-import {Log} from './screens/Log'
-
-export type ScreenParams = {
-  navIdx: string
-  params: Record<string, any>
-  visible: boolean
-}
-export type Route = [React.FC<ScreenParams>, string, IconProp, RegExp]
-export type MatchResult = {
-  Com: React.FC<ScreenParams>
-  defaultTitle: string
-  icon: IconProp
-  params: Record<string, any>
-  isNotFound?: boolean
-}
-
-const r = (pattern: string) => new RegExp('^' + pattern + '([?]|$)', 'i')
-export const routes: Route[] = [
-  [Home, 'Home', 'house', r('/')],
-  [Contacts, 'Contacts', ['far', 'circle-user'], r('/contacts')],
-  [Search, 'Search', 'magnifying-glass', r('/search')],
-  [Notifications, 'Notifications', 'bell', r('/notifications')],
-  [Settings, 'Settings', 'bell', r('/settings')],
-  [Profile, 'User', ['far', 'user'], r('/profile/(?<name>[^/]+)')],
-  [
-    ProfileFollowers,
-    'Followers',
-    'users',
-    r('/profile/(?<name>[^/]+)/followers'),
-  ],
-  [ProfileFollows, 'Follows', 'users', r('/profile/(?<name>[^/]+)/follows')],
-  [
-    PostThread,
-    'Post',
-    ['far', 'message'],
-    r('/profile/(?<name>[^/]+)/post/(?<rkey>[^/]+)'),
-  ],
-  [
-    PostUpvotedBy,
-    'Liked by',
-    'heart',
-    r('/profile/(?<name>[^/]+)/post/(?<rkey>[^/]+)/upvoted-by'),
-  ],
-  [
-    PostDownvotedBy,
-    'Downvoted by',
-    'heart',
-    r('/profile/(?<name>[^/]+)/post/(?<rkey>[^/]+)/downvoted-by'),
-  ],
-  [
-    PostRepostedBy,
-    'Reposted by',
-    'retweet',
-    r('/profile/(?<name>[^/]+)/post/(?<rkey>[^/]+)/reposted-by'),
-  ],
-  [Debug, 'Debug', 'house', r('/sys/debug')],
-  [Log, 'Log', 'house', r('/sys/log')],
-]
-
-export function match(url: string): MatchResult {
-  for (const [Com, defaultTitle, icon, pattern] of routes) {
-    const res = pattern.exec(url)
-    if (res) {
-      // TODO: query params
-      return {Com, defaultTitle, icon, params: res.groups || {}}
-    }
-  }
-  return {
-    Com: NotFound,
-    defaultTitle: 'Not found',
-    icon: 'magnifying-glass',
-    params: {},
-    isNotFound: true,
-  }
-}