chore: native-like draggable mobile menus (#2599)

This commit is contained in:
Aman Harwara
2023-10-23 19:27:52 +05:30
committed by GitHub
parent 3ece5868c1
commit a850d3c989
8 changed files with 373 additions and 231 deletions

View File

@@ -17,9 +17,6 @@ const Animations = {
},
exit: {
keyframes: [
{
transform: 'translateY(0)',
},
{
transform: 'translateY(100%)',
},
@@ -81,11 +78,11 @@ const Animations = {
},
}
const MobileOptions = {
export const MobileModalAnimationOptions = {
easing: IosModalAnimationEasing,
duration: 250,
fill: 'forwards',
}
} as const
const NonMobileOptions = {
duration: 75,
@@ -102,7 +99,7 @@ export const useModalAnimation = (
open: isOpen,
enter: {
keyframes: isMobileScreen ? Animations[variant].enter.keyframes : Animations.nonMobile.enter.keyframes,
options: isMobileScreen ? MobileOptions : NonMobileOptions,
options: isMobileScreen ? MobileModalAnimationOptions : NonMobileOptions,
initialStyle: {
transformOrigin: isMobileScreen
? Animations[variant].enter.transformOrigin
@@ -117,7 +114,7 @@ export const useModalAnimation = (
},
exit: {
keyframes: isMobileScreen ? Animations[variant].exit.keyframes : Animations.nonMobile.exit.keyframes,
options: isMobileScreen ? MobileOptions : NonMobileOptions,
options: isMobileScreen ? MobileModalAnimationOptions : NonMobileOptions,
initialStyle: {
transformOrigin: isMobileScreen
? Animations[variant].exit.transformOrigin