This commit is contained in:
Hailey
2024-09-16 13:02:49 -07:00
parent 0d6562aeb4
commit 9956572a09
+50 -3
View File
@@ -1,6 +1,15 @@
import React from 'react' import React from 'react'
import {StyleSheet, View} from 'react-native' import {StyleSheet, View} from 'react-native'
import Animated from 'react-native-reanimated' import Animated, {
useAnimatedStyle,
useReducedMotion,
useSharedValue,
withDelay,
withRepeat,
withSequence,
withSpring,
withTiming,
} from 'react-native-reanimated'
import {msg} from '@lingui/macro' import {msg} from '@lingui/macro'
import {useLingui} from '@lingui/react' import {useLingui} from '@lingui/react'
@@ -40,6 +49,43 @@ function HomeHeaderLayoutDesktopAndTablet({
const {hasSession} = useSession() const {hasSession} = useSession()
const {_} = useLingui() const {_} = useLingui()
// TEMPORARY - REMOVE AFTER MILLY
// This will just cause the icon to shake a bit when the user first opens the app, drawing attention to the celebration
// 🎉
const rotate = useSharedValue(0)
const reducedMotion = useReducedMotion()
// Run this a single time on app mount.
React.useEffect(() => {
if (reducedMotion) return
// Waits 1500ms, then rotates 10 degrees with a spring animation. Repeats once.
rotate.value = withDelay(
1000,
withRepeat(
withSequence(
withTiming(10, {duration: 100}),
withSpring(0, {
mass: 1,
damping: 1,
stiffness: 200,
overshootClamping: false,
}),
),
2,
false,
),
)
}, [rotate, reducedMotion])
const animatedStyle = useAnimatedStyle(() => ({
transform: [
{
rotateZ: `${rotate.value}deg`,
},
],
}))
return ( return (
<> <>
{hasSession && ( {hasSession && (
@@ -56,7 +102,7 @@ function HomeHeaderLayoutDesktopAndTablet({
t.atoms.border_contrast_low, t.atoms.border_contrast_low,
styles.bar, styles.bar,
]}> ]}>
<View <Animated.View
style={[ style={[
a.absolute, a.absolute,
a.inset_0, a.inset_0,
@@ -65,6 +111,7 @@ function HomeHeaderLayoutDesktopAndTablet({
{ {
width: 28, width: 28,
}, },
animatedStyle,
]}> ]}>
<Trigger> <Trigger>
{ctx => ( {ctx => (
@@ -77,7 +124,7 @@ function HomeHeaderLayoutDesktopAndTablet({
)} )}
</Trigger> </Trigger>
{/* <Logo width={28} /> */} {/* <Logo width={28} /> */}
</View> </Animated.View>
<Link <Link
to="/feeds" to="/feeds"