mirror of https://github.com/tooot-app/app
41 lines
979 B
TypeScript
41 lines
979 B
TypeScript
/**
|
|
* Copyright (c) JOB TODAY S.A. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
*/
|
|
|
|
import { Animated } from 'react-native'
|
|
|
|
const INITIAL_POSITION = { x: 0, y: 0 }
|
|
const ANIMATION_CONFIG = {
|
|
duration: 200,
|
|
useNativeDriver: true
|
|
}
|
|
|
|
const useAnimatedComponents = () => {
|
|
const headerTranslate = new Animated.ValueXY(INITIAL_POSITION)
|
|
|
|
const toggleVisible = (isVisible: boolean) => {
|
|
if (isVisible) {
|
|
Animated.parallel([
|
|
Animated.timing(headerTranslate.y, { ...ANIMATION_CONFIG, toValue: 0 })
|
|
]).start()
|
|
} else {
|
|
Animated.parallel([
|
|
Animated.timing(headerTranslate.y, {
|
|
...ANIMATION_CONFIG,
|
|
toValue: -300
|
|
})
|
|
]).start()
|
|
}
|
|
}
|
|
|
|
const headerTransform = headerTranslate.getTranslateTransform()
|
|
|
|
return [headerTransform, toggleVisible] as const
|
|
}
|
|
|
|
export default useAnimatedComponents
|