diff options
-rw-r--r-- | ios/Podfile.lock | 6 | ||||
-rw-r--r-- | package.json | 1 | ||||
-rw-r--r-- | src/view/com/profile/ProfileHeader.tsx | 21 | ||||
-rw-r--r-- | src/view/com/util/UserBanner.tsx | 4 | ||||
-rw-r--r-- | src/view/screens/Profile.tsx | 6 | ||||
-rw-r--r-- | yarn.lock | 5 |
6 files changed, 34 insertions, 9 deletions
diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 9ce861cc8..6f14299b0 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -236,6 +236,8 @@ PODS: - React-jsinspector (0.71.0) - React-logger (0.71.0): - glog + - react-native-blur (4.3.0): + - React-Core - react-native-cameraroll (5.2.0): - React-Core - react-native-image-resizer (3.0.4): @@ -413,6 +415,7 @@ DEPENDENCIES: - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`) - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`) - React-logger (from `../node_modules/react-native/ReactCommon/logger`) + - "react-native-blur (from `../node_modules/@react-native-community/blur`)" - "react-native-cameraroll (from `../node_modules/@react-native-camera-roll/camera-roll`)" - "react-native-image-resizer (from `../node_modules/@bam.tech/react-native-image-resizer`)" - react-native-pager-view (from `../node_modules/react-native-pager-view`) @@ -493,6 +496,8 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon/jsinspector" React-logger: :path: "../node_modules/react-native/ReactCommon/logger" + react-native-blur: + :path: "../node_modules/@react-native-community/blur" react-native-cameraroll: :path: "../node_modules/@react-native-camera-roll/camera-roll" react-native-image-resizer: @@ -578,6 +583,7 @@ SPEC CHECKSUMS: React-jsiexecutor: 060dd495f1e2af3d87216f7ca8a94c55ec885b4f React-jsinspector: 5061fcbec93fd672183dfb39cc2f65e55a0835db React-logger: a6c0b3a807a8e81f6d7fea2e72660766f55daa50 + react-native-blur: 50c9feabacbc5f49b61337ebc32192c6be7ec3c3 react-native-cameraroll: 0ff04cc4e0ff5f19a94ff4313e5c8bc4503cd86d react-native-image-resizer: 794abf75ec13ed1f0dbb1f134e27504ea65e9e66 react-native-pager-view: 54bed894cecebe28cede54c01038d9d1e122de43 diff --git a/package.json b/package.json index 7cfad40f9..e0d594e4b 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@react-native-async-storage/async-storage": "^1.17.6", "@react-native-camera-roll/camera-roll": "^5.1.0", "@react-native-clipboard/clipboard": "^1.10.0", + "@react-native-community/blur": "^4.3.0", "@zxing/text-encoding": "^0.9.0", "base64-js": "^1.5.1", "email-validator": "^2.0.4", diff --git a/src/view/com/profile/ProfileHeader.tsx b/src/view/com/profile/ProfileHeader.tsx index 3bcc825fd..3982637fc 100644 --- a/src/view/com/profile/ProfileHeader.tsx +++ b/src/view/com/profile/ProfileHeader.tsx @@ -8,6 +8,7 @@ import { } from 'react-native' import LinearGradient from 'react-native-linear-gradient' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' +import {BlurView} from '@react-native-community/blur' import {ProfileViewModel} from '../../../state/models/profile-view' import {useStores} from '../../../state' import { @@ -36,6 +37,9 @@ export const ProfileHeader = observer(function ProfileHeader({ const pal = usePalette('default') const store = useStores() + const onPressBack = () => { + store.nav.tab.goBack() + } const onPressAvi = () => { if (view.avatar) { store.shell.openLightbox(new ProfileImageLightbox(view)) @@ -262,6 +266,11 @@ export const ProfileHeader = observer(function ProfileHeader({ </View> ) : undefined} </View> + <TouchableWithoutFeedback onPress={onPressBack}> + <BlurView style={styles.backBtn} blurType="dark"> + <FontAwesomeIcon size={18} icon="angle-left" style={s.white} /> + </BlurView> + </TouchableWithoutFeedback> <TouchableWithoutFeedback testID="profileHeaderAviButton" onPress={onPressAvi}> @@ -284,9 +293,19 @@ const styles = StyleSheet.create({ width: '100%', height: 120, }, + backBtn: { + position: 'absolute', + top: 10, + left: 10, + width: 30, + height: 30, + borderRadius: 15, + alignItems: 'center', + justifyContent: 'center', + }, avi: { position: 'absolute', - top: 80, + top: 110, left: 10, width: 84, height: 84, diff --git a/src/view/com/util/UserBanner.tsx b/src/view/com/util/UserBanner.tsx index 2bd8f765b..1863e1883 100644 --- a/src/view/com/util/UserBanner.tsx +++ b/src/view/com/util/UserBanner.tsx @@ -61,7 +61,7 @@ export function UserBanner({ }, [onSelectNewBanner]) const renderSvg = () => ( - <Svg width="100%" height="120" viewBox="50 0 200 100"> + <Svg width="100%" height="150" viewBox="50 0 200 100"> <Defs> <LinearGradient id="grad" x1="0" y1="0" x2="1" y2="1"> <Stop @@ -118,6 +118,6 @@ const styles = StyleSheet.create({ }, bannerImage: { width: '100%', - height: 120, + height: 150, }, }) diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index 454ae8ade..a3e3ecd33 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -5,7 +5,6 @@ import {ViewSelector} from '../com/util/ViewSelector' import {ScreenParams} from '../routes' import {ProfileUiModel, Sections} from '../../state/models/profile-ui' import {useStores} from '../../state' -import {ConfirmModal} from '../../state/models/shell-ui' import {ProfileHeader} from '../com/profile/ProfileHeader' import {FeedItem} from '../com/posts/FeedItem' import {PostFeedLoadingPlaceholder} from '../com/util/LoadingPlaceholder' @@ -13,8 +12,6 @@ import {ErrorScreen} from '../com/util/error/ErrorScreen' import {ErrorMessage} from '../com/util/error/ErrorMessage' import {EmptyState} from '../com/util/EmptyState' import {Text} from '../com/util/text/Text' -import {ViewHeader} from '../com/util/ViewHeader' -import * as Toast from '../com/util/Toast' import {FAB} from '../com/util/FAB' import {s, colors} from '../lib/styles' import {useOnMainScroll} from '../lib/hooks/useOnMainScroll' @@ -152,11 +149,8 @@ export const Profile = observer(({navIdx, visible, params}: ScreenParams) => { renderItem = () => <View /> } - const title = - uiState.profile.displayName || uiState.profile.handle || params.name return ( <View testID="profileView" style={styles.container}> - <ViewHeader title={title} /> {uiState.profile.hasError ? ( <ErrorScreen testID="profileErrorScreen" diff --git a/yarn.lock b/yarn.lock index 23a533b2c..a380cfe07 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1967,6 +1967,11 @@ resolved "https://registry.yarnpkg.com/@react-native-clipboard/clipboard/-/clipboard-1.11.1.tgz#d3a9e685ce2383b1e92b89a334896c5575cc103d" integrity sha512-nvSIIHzybVWqYxcJE5hpT17ekxAAg383Ggzw5WrYHtkKX61N1AwaKSNmXs5xHV7pmKSOe/yWjtSwxIzfW51I5Q== +"@react-native-community/blur@^4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@react-native-community/blur/-/blur-4.3.0.tgz#e5018b3b0bd6de9632ac6cf34e9f8e0f1a9a28ec" + integrity sha512-d6phh39kKcbZ4IluDftiVWqfeFOgjl1AbQWzN47x+hLKQ5GvQJ6QhRvgAuDZ+xbJksrbXgNpMjVYkjsbcVehxg== + "@react-native-community/cli-clean@^10.0.0": version "10.0.0" resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-10.0.0.tgz#09cc4c63116e81d3765ffedecc38387bcc7b4483" |