From f18b9b32b0d296c8d19dc06956699f95c0af9be2 Mon Sep 17 00:00:00 2001
From: Eric Bailey <git@esb.lol>
Date: Tue, 21 Nov 2023 10:57:34 -0600
Subject: PWI Base (#1964)

* Base work for public view

* Make default moderation settings more restrictive

* Fix type

* Handle showing sign-in on authed actions

* Fix hoc logic

* Simplify prefs logic

* Remove duplicate method

* Add todo

* Clean up RepostButton.web

* Fix x button color

* Add todo

* Retain existing label prefs for now, use separate logged out settings

* Clean up useAuthedMethod, rename to useRequireAuth

* Add todos

* Move dismiss logic to withAuthRequired

* Ooops add web

* Block public view in prod

* Add todo

* Fix bad import
---
 src/view/screens/PostThread.tsx | 145 ++++++++++++++++++++--------------------
 1 file changed, 73 insertions(+), 72 deletions(-)

(limited to 'src/view/screens/PostThread.tsx')

diff --git a/src/view/screens/PostThread.tsx b/src/view/screens/PostThread.tsx
index 0476e182b..11574e283 100644
--- a/src/view/screens/PostThread.tsx
+++ b/src/view/screens/PostThread.tsx
@@ -27,84 +27,85 @@ import {CenteredView} from '../com/util/Views'
 import {useComposerControls} from '#/state/shell/composer'
 
 type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostThread'>
-export const PostThreadScreen = withAuthRequired(function PostThreadScreenImpl({
-  route,
-}: Props) {
-  const queryClient = useQueryClient()
-  const {_} = useLingui()
-  const {fabMinimalShellTransform} = useMinimalShellMode()
-  const setMinimalShellMode = useSetMinimalShellMode()
-  const {openComposer} = useComposerControls()
-  const safeAreaInsets = useSafeAreaInsets()
-  const {name, rkey} = route.params
-  const {isMobile} = useWebMediaQueries()
-  const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey)
-  const {data: resolvedUri, error: uriError} = useResolveUriQuery(uri)
+export const PostThreadScreen = withAuthRequired(
+  function PostThreadScreenImpl({route}: Props) {
+    const queryClient = useQueryClient()
+    const {_} = useLingui()
+    const {fabMinimalShellTransform} = useMinimalShellMode()
+    const setMinimalShellMode = useSetMinimalShellMode()
+    const {openComposer} = useComposerControls()
+    const safeAreaInsets = useSafeAreaInsets()
+    const {name, rkey} = route.params
+    const {isMobile} = useWebMediaQueries()
+    const uri = makeRecordUri(name, 'app.bsky.feed.post', rkey)
+    const {data: resolvedUri, error: uriError} = useResolveUriQuery(uri)
 
-  useFocusEffect(
-    React.useCallback(() => {
-      setMinimalShellMode(false)
-    }, [setMinimalShellMode]),
-  )
-
-  const onPressReply = React.useCallback(() => {
-    if (!resolvedUri) {
-      return
-    }
-    const thread = queryClient.getQueryData<ThreadNode>(
-      POST_THREAD_RQKEY(resolvedUri.uri),
+    useFocusEffect(
+      React.useCallback(() => {
+        setMinimalShellMode(false)
+      }, [setMinimalShellMode]),
     )
-    if (thread?.type !== 'post') {
-      return
-    }
-    openComposer({
-      replyTo: {
-        uri: thread.post.uri,
-        cid: thread.post.cid,
-        text: thread.record.text,
-        author: {
-          handle: thread.post.author.handle,
-          displayName: thread.post.author.displayName,
-          avatar: thread.post.author.avatar,
+
+    const onPressReply = React.useCallback(() => {
+      if (!resolvedUri) {
+        return
+      }
+      const thread = queryClient.getQueryData<ThreadNode>(
+        POST_THREAD_RQKEY(resolvedUri.uri),
+      )
+      if (thread?.type !== 'post') {
+        return
+      }
+      openComposer({
+        replyTo: {
+          uri: thread.post.uri,
+          cid: thread.post.cid,
+          text: thread.record.text,
+          author: {
+            handle: thread.post.author.handle,
+            displayName: thread.post.author.displayName,
+            avatar: thread.post.author.avatar,
+          },
         },
-      },
-      onPost: () =>
-        queryClient.invalidateQueries({
-          queryKey: POST_THREAD_RQKEY(resolvedUri.uri || ''),
-        }),
-    })
-  }, [openComposer, queryClient, resolvedUri])
+        onPost: () =>
+          queryClient.invalidateQueries({
+            queryKey: POST_THREAD_RQKEY(resolvedUri.uri || ''),
+          }),
+      })
+    }, [openComposer, queryClient, resolvedUri])
 
-  return (
-    <View style={s.hContentRegion}>
-      {isMobile && <ViewHeader title={_(msg`Post`)} />}
-      <View style={s.flex1}>
-        {uriError ? (
-          <CenteredView>
-            <ErrorMessage message={String(uriError)} />
-          </CenteredView>
-        ) : (
-          <PostThreadComponent
-            uri={resolvedUri?.uri}
-            onPressReply={onPressReply}
-          />
+    return (
+      <View style={s.hContentRegion}>
+        {isMobile && <ViewHeader title={_(msg`Post`)} />}
+        <View style={s.flex1}>
+          {uriError ? (
+            <CenteredView>
+              <ErrorMessage message={String(uriError)} />
+            </CenteredView>
+          ) : (
+            <PostThreadComponent
+              uri={resolvedUri?.uri}
+              onPressReply={onPressReply}
+            />
+          )}
+        </View>
+        {isMobile && (
+          <Animated.View
+            style={[
+              styles.prompt,
+              fabMinimalShellTransform,
+              {
+                bottom: clamp(safeAreaInsets.bottom, 15, 30),
+              },
+            ]}>
+            <ComposePrompt onPressCompose={onPressReply} />
+          </Animated.View>
         )}
       </View>
-      {isMobile && (
-        <Animated.View
-          style={[
-            styles.prompt,
-            fabMinimalShellTransform,
-            {
-              bottom: clamp(safeAreaInsets.bottom, 15, 30),
-            },
-          ]}>
-          <ComposePrompt onPressCompose={onPressReply} />
-        </Animated.View>
-      )}
-    </View>
-  )
-})
+    )
+  },
+  {isPublic: true},
+)
 
 const styles = StyleSheet.create({
   prompt: {
-- 
cgit 1.4.1

