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()
)}
-
+
)
})