diff options
author | Samuel Newman <mozzius@protonmail.com> | 2024-12-12 17:46:19 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-12 17:46:19 +0000 |
commit | ffc63dc85fc191a51c3dc12c1afcd250f95036d5 (patch) | |
tree | d48124c74c24662abf9ee28ff6fbbdd4b1d8ee99 /src/screens/Profile/Header/Shell.tsx | |
parent | 4b32b0a71be4669fa0741efc46d646093c3114f5 (diff) | |
download | voidsky-ffc63dc85fc191a51c3dc12c1afcd250f95036d5.tar.zst |
[Layout] Bleed profile banner into safe area (#6967)
* bleed profile banner into safe area (cherry picked from commit 50b3a4d0c6fd94b583ffe4efa65de35c81ae7f4e) * pointer events none when hidden (cherry picked from commit bae2c7b2dd6d7f858a98812196628308c0877755) * fix web (cherry picked from commit e3f9597170375f2903b6e567b963f008ec95aed1) * add status bar shadow * rm log * rm mini header * speed up animation * pass bool rather than int in light status bar
Diffstat (limited to 'src/screens/Profile/Header/Shell.tsx')
-rw-r--r-- | src/screens/Profile/Header/Shell.tsx | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/src/screens/Profile/Header/Shell.tsx b/src/screens/Profile/Header/Shell.tsx index 573d38145..dedbfd201 100644 --- a/src/screens/Profile/Header/Shell.tsx +++ b/src/screens/Profile/Header/Shell.tsx @@ -1,15 +1,14 @@ import React, {memo} from 'react' import {StyleSheet, TouchableWithoutFeedback, View} from 'react-native' import {MeasuredDimensions, runOnJS, runOnUI} from 'react-native-reanimated' +import {useSafeAreaInsets} from 'react-native-safe-area-context' import {AppBskyActorDefs, ModerationDecision} from '@atproto/api' -import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import {useNavigation} from '@react-navigation/native' import {BACK_HITSLOP} from '#/lib/constants' import {measureHandle, useHandleRef} from '#/lib/hooks/useHandleRef' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {NavigationProp} from '#/lib/routes/types' import {isIOS} from '#/platform/detection' import {Shadow} from '#/state/cache/types' @@ -18,11 +17,13 @@ import {useSession} from '#/state/session' import {LoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder' import {UserAvatar} from '#/view/com/util/UserAvatar' import {UserBanner} from '#/view/com/util/UserBanner' -import {atoms as a, useTheme} from '#/alf' +import {atoms as a, platform, useTheme} from '#/alf' +import {ArrowLeft_Stroke2_Corner0_Rounded as ArrowLeftIcon} from '#/components/icons/Arrow' import {LabelsOnMe} from '#/components/moderation/LabelsOnMe' import {ProfileHeaderAlerts} from '#/components/moderation/ProfileHeaderAlerts' import {GrowableAvatar} from './GrowableAvatar' import {GrowableBanner} from './GrowableBanner' +import {StatusBarShadow} from './StatusBarShadow' interface Props { profile: Shadow<AppBskyActorDefs.ProfileViewDetailed> @@ -43,7 +44,8 @@ let ProfileHeaderShell = ({ const {_} = useLingui() const {openLightbox} = useLightboxControls() const navigation = useNavigation<NavigationProp>() - const {isDesktop} = useWebMediaQueries() + const {top: topInset} = useSafeAreaInsets() + const aviRef = useHandleRef() const onPressBack = React.useCallback(() => { @@ -100,10 +102,11 @@ let ProfileHeaderShell = ({ <View pointerEvents={isIOS ? 'auto' : 'box-none'} style={[a.relative, {height: 150}]}> + <StatusBarShadow /> <GrowableBanner backButton={ <> - {!isDesktop && !hideBackButton && ( + {!hideBackButton && ( <TouchableWithoutFeedback testID="profileHeaderBackBtn" onPress={onPressBack} @@ -111,12 +114,17 @@ let ProfileHeaderShell = ({ accessibilityRole="button" accessibilityLabel={_(msg`Back`)} accessibilityHint=""> - <View style={styles.backBtnWrapper}> - <FontAwesomeIcon - size={18} - icon="angle-left" - color="white" - /> + <View + style={[ + styles.backBtnWrapper, + { + top: platform({ + web: 10, + default: topInset, + }), + }, + ]}> + <ArrowLeftIcon size="lg" fill="white" /> </View> </TouchableWithoutFeedback> )} @@ -186,7 +194,6 @@ export {ProfileHeaderShell} const styles = StyleSheet.create({ backBtnWrapper: { position: 'absolute', - top: 10, left: 10, width: 30, height: 30, |