diff --git a/src/view/com/util/FAB.tsx b/src/view/com/util/FAB.tsx index ad3fe87d1c..ddbe93ce24 100644 --- a/src/view/com/util/FAB.tsx +++ b/src/view/com/util/FAB.tsx @@ -1,15 +1,16 @@ import React from 'react' import {observer} from 'mobx-react-lite' import { + Animated, GestureResponderEvent, StyleSheet, TouchableWithoutFeedback, - View, } from 'react-native' import LinearGradient from 'react-native-linear-gradient' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {IconProp} from '@fortawesome/fontawesome-svg-core' import {colors, gradients} from '../../lib/styles' +import {useAnimatedValue} from '../../lib/hooks/useAnimatedValue' import {useStores} from '../../../state' type OnPress = ((event: GestureResponderEvent) => void) | undefined @@ -19,31 +20,34 @@ export const FAB = observer( icon, onPress, }: { - testID: string + testID?: string icon: IconProp onPress: OnPress }) => { const store = useStores() + const interp = useAnimatedValue(0) + React.useEffect(() => { + Animated.timing(interp, { + toValue: store.shell.minimalShellMode ? 1 : 0, + duration: 100, + useNativeDriver: true, + isInteraction: false, + }).start() + }, [interp, store.shell.minimalShellMode]) + const transform = { + transform: [{translateY: Animated.multiply(interp, 60)}], + } return ( - + - + - + ) }, @@ -54,16 +58,10 @@ const styles = StyleSheet.create({ position: 'absolute', zIndex: 1, right: 22, - bottom: 84, + bottom: 94, width: 60, height: 60, borderRadius: 30, - shadowColor: '#000', - shadowOpacity: 0.3, - shadowOffset: {width: 0, height: 1}, - }, - lower: { - bottom: 34, }, inner: { width: 60, @@ -72,5 +70,4 @@ const styles = StyleSheet.create({ justifyContent: 'center', alignItems: 'center', }, - icon: {}, }) diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index d6356ad946..dfb74ebafe 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -125,7 +125,7 @@ export const Home = observer(function Home({navIdx, visible}: ScreenParams) { ) : undefined} onPressCompose(false)} /> diff --git a/src/view/screens/Profile.tsx b/src/view/screens/Profile.tsx index effdf8bc43..3ca5b8e0a3 100644 --- a/src/view/screens/Profile.tsx +++ b/src/view/screens/Profile.tsx @@ -190,7 +190,7 @@ export const Profile = observer(({navIdx, visible, params}: ScreenParams) => { ) : ( renderHeader() )} - + ) })