about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2022-11-15 13:11:01 -0600
committerPaul Frazee <pfrazee@gmail.com>2022-11-15 13:11:01 -0600
commit60c72087ff0bc13453d2a1602b92b41baf1c2a6a (patch)
tree3e6bf6714f3e97c7b70f7b23374879f3a1a8ee42 /src
parentccae52f61291e770c73723a96b516ba9d0c3898e (diff)
downloadvoidsky-60c72087ff0bc13453d2a1602b92b41baf1c2a6a.tar.zst
Add current user profile to header and enlarge the header
Diffstat (limited to 'src')
-rw-r--r--src/view/com/profile/ProfileHeader.tsx24
-rw-r--r--src/view/com/util/ViewHeader.tsx37
-rw-r--r--src/view/screens/Profile.tsx1
3 files changed, 49 insertions, 13 deletions
diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx
index 73ddddde9..7292deda3 100644
--- a/src/view/com/profile/ProfileHeader.tsx
+++ b/src/view/com/profile/ProfileHeader.tsx
@@ -42,6 +42,11 @@ export const ProfileHeader = observer(function ProfileHeader({
   const onPressBack = () => {
     store.nav.tab.goBack()
   }
+  const onPressMyAvatar = () => {
+    if (store.me.handle) {
+      store.nav.navigate(`/profile/${store.me.handle}`)
+    }
+  }
   const onPressToggleFollow = () => {
     view?.toggleFollowing().then(
       () => {
@@ -143,12 +148,21 @@ export const ProfileHeader = observer(function ProfileHeader({
       {store.nav.tab.canGoBack ? (
         <TouchableOpacity style={styles.backButton} onPress={onPressBack}>
           <FontAwesomeIcon
-            size={14}
+            size={18}
             icon="angle-left"
             style={styles.backIcon}
           />
         </TouchableOpacity>
       ) : undefined}
+      {store.me.did ? (
+        <TouchableOpacity style={styles.myAvatar} onPress={onPressMyAvatar}>
+          <UserAvatar
+            size={30}
+            handle={store.me.handle || ''}
+            displayName={store.me.displayName}
+          />
+        </TouchableOpacity>
+      ) : undefined}
       <View style={styles.avi}>
         <UserAvatar
           size={80}
@@ -321,6 +335,14 @@ const styles = StyleSheet.create({
     height: 14,
     color: colors.black,
   },
+  myAvatar: {
+    position: 'absolute',
+    top: 10,
+    right: 12,
+    backgroundColor: '#ffff',
+    padding: 1,
+    borderRadius: 30,
+  },
   avi: {
     position: 'absolute',
     top: 80,
diff --git a/src/view/com/util/ViewHeader.tsx b/src/view/com/util/ViewHeader.tsx
index 46be1144f..fa9bc8f4c 100644
--- a/src/view/com/util/ViewHeader.tsx
+++ b/src/view/com/util/ViewHeader.tsx
@@ -1,7 +1,8 @@
 import React from 'react'
 import {StyleSheet, Text, TouchableOpacity, View} from 'react-native'
 import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome'
-import {s, colors} from '../../lib/styles'
+import {UserAvatar} from './UserAvatar'
+import {colors} from '../../lib/styles'
 import {useStores} from '../../../state'
 
 export function ViewHeader({
@@ -15,15 +16,16 @@ export function ViewHeader({
   const onPressBack = () => {
     store.nav.tab.goBack()
   }
+  const onPressAvatar = () => {
+    if (store.me.handle) {
+      store.nav.navigate(`/profile/${store.me.handle}`)
+    }
+  }
   return (
     <View style={styles.header}>
       {store.nav.tab.canGoBack ? (
-        <TouchableOpacity onPress={onPressBack}>
-          <FontAwesomeIcon
-            size={14}
-            icon="angle-left"
-            style={styles.backIcon}
-          />
+        <TouchableOpacity onPress={onPressBack} style={styles.backIcon}>
+          <FontAwesomeIcon size={18} icon="angle-left" style={{marginTop: 3}} />
         </TouchableOpacity>
       ) : (
         <View style={styles.cornerPlaceholder} />
@@ -36,7 +38,17 @@ export function ViewHeader({
           </Text>
         ) : undefined}
       </View>
-      <View style={styles.cornerPlaceholder} />
+      {store.me.did ? (
+        <TouchableOpacity onPress={onPressAvatar}>
+          <UserAvatar
+            size={24}
+            handle={store.me.handle || ''}
+            displayName={store.me.displayName}
+          />
+        </TouchableOpacity>
+      ) : (
+        <View style={styles.cornerPlaceholder} />
+      )}
     </View>
   )
 }
@@ -47,7 +59,8 @@ const styles = StyleSheet.create({
     alignItems: 'center',
     backgroundColor: colors.white,
     paddingHorizontal: 12,
-    paddingBottom: 6,
+    paddingTop: 2,
+    paddingBottom: 8,
     borderBottomColor: colors.gray1,
     borderBottomWidth: 1,
   },
@@ -70,8 +83,8 @@ const styles = StyleSheet.create({
   },
 
   cornerPlaceholder: {
-    width: 14,
-    height: 14,
+    width: 24,
+    height: 24,
   },
-  backIcon: {width: 14, height: 14},
+  backIcon: {width: 24, height: 24},
 })
diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx
index d3088a4b2..aed482bfb 100644
--- a/src/view/screens/Profile.tsx
+++ b/src/view/screens/Profile.tsx
@@ -115,6 +115,7 @@ export const Profile = observer(({visible, params}: ScreenParams) => {
       renderItem = (item: any) => (
         <View style={s.p5}>
           <ErrorMessage
+            dark
             message={item.error}
             onPressTryAgain={onPressTryAgain}
           />