about summary refs log tree commit diff
path: root/src/view/screens/ProfileList.tsx
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2023-11-24 22:31:33 +0000
committerGitHub <noreply@github.com>2023-11-24 22:31:33 +0000
commitf2d164ec23247d878f7f019d568a3073a5ae94c4 (patch)
tree7db9131e8b1f642494bb0b626a75a5ec7be36755 /src/view/screens/ProfileList.tsx
parent4b59a21cacc36d3c05e68d22379538c0f32550c9 (diff)
downloadvoidsky-f2d164ec23247d878f7f019d568a3073a5ae94c4.tar.zst
PWI: Refactor Shell (#1989)
* Vendor createNativeStackNavigator for further tweaks

* Completely disable withAuthRequired

* Render LoggedOut for protected routes

* Move web shell into the navigator

* Simplify the logic

* Add login modal

* Delete withAuthRequired

* Reset app state on session change

* Move TS suppression
Diffstat (limited to 'src/view/screens/ProfileList.tsx')
-rw-r--r--src/view/screens/ProfileList.tsx63
1 files changed, 30 insertions, 33 deletions
diff --git a/src/view/screens/ProfileList.tsx b/src/view/screens/ProfileList.tsx
index a8c55250f..cc6d85e6f 100644
--- a/src/view/screens/ProfileList.tsx
+++ b/src/view/screens/ProfileList.tsx
@@ -12,7 +12,6 @@ import {useNavigation} from '@react-navigation/native'
 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
 import {AppBskyGraphDefs, AtUri, RichText as RichTextAPI} from '@atproto/api'
 import {useQueryClient} from '@tanstack/react-query'
-import {withAuthRequired} from 'view/com/auth/withAuthRequired'
 import {PagerWithHeader} from 'view/com/pager/PagerWithHeader'
 import {ProfileSubpageHeader} from 'view/com/profile/ProfileSubpageHeader'
 import {Feed} from 'view/com/posts/Feed'
@@ -64,42 +63,40 @@ interface SectionRef {
 }
 
 type Props = NativeStackScreenProps<CommonNavigatorParams, 'ProfileList'>
-export const ProfileListScreen = withAuthRequired(
-  function ProfileListScreenImpl(props: Props) {
-    const {name: handleOrDid, rkey} = props.route.params
-    const {data: resolvedUri, error: resolveError} = useResolveUriQuery(
-      AtUri.make(handleOrDid, 'app.bsky.graph.list', rkey).toString(),
-    )
-    const {data: list, error: listError} = useListQuery(resolvedUri?.uri)
-
-    if (resolveError) {
-      return (
-        <CenteredView>
-          <ErrorScreen
-            error={`We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @${handleOrDid}.`}
-          />
-        </CenteredView>
-      )
-    }
-    if (listError) {
-      return (
-        <CenteredView>
-          <ErrorScreen error={cleanError(listError)} />
-        </CenteredView>
-      )
-    }
+export function ProfileListScreen(props: Props) {
+  const {name: handleOrDid, rkey} = props.route.params
+  const {data: resolvedUri, error: resolveError} = useResolveUriQuery(
+    AtUri.make(handleOrDid, 'app.bsky.graph.list', rkey).toString(),
+  )
+  const {data: list, error: listError} = useListQuery(resolvedUri?.uri)
 
-    return resolvedUri && list ? (
-      <ProfileListScreenLoaded {...props} uri={resolvedUri.uri} list={list} />
-    ) : (
+  if (resolveError) {
+    return (
       <CenteredView>
-        <View style={s.p20}>
-          <ActivityIndicator size="large" />
-        </View>
+        <ErrorScreen
+          error={`We're sorry, but we were unable to resolve this list. If this persists, please contact the list creator, @${handleOrDid}.`}
+        />
       </CenteredView>
     )
-  },
-)
+  }
+  if (listError) {
+    return (
+      <CenteredView>
+        <ErrorScreen error={cleanError(listError)} />
+      </CenteredView>
+    )
+  }
+
+  return resolvedUri && list ? (
+    <ProfileListScreenLoaded {...props} uri={resolvedUri.uri} list={list} />
+  ) : (
+    <CenteredView>
+      <View style={s.p20}>
+        <ActivityIndicator size="large" />
+      </View>
+    </CenteredView>
+  )
+}
 
 function ProfileListScreenLoaded({
   route,