1
1
import React from 'react' ;
2
- import { View } from 'react-native' ;
2
+ import { PixelRatio , View } from 'react-native' ;
3
3
import {
4
4
LongPressGestureHandler ,
5
5
TapGestureHandler ,
@@ -13,21 +13,23 @@ import Animated, {
13
13
useSharedValue ,
14
14
withTiming ,
15
15
} from 'react-native-reanimated' ;
16
- import { VIRTUAL_KEYBOARD_BUTTON_SIZE } from './VirtualKeyboard' ;
17
16
18
17
interface RippleProps {
19
18
onPress : ( ) => void ;
20
19
backgroundColor ?: string ;
21
20
onLongPress ?: ( ) => void ;
21
+ isSmallScreen ?: boolean ;
22
22
children : React . ReactNode ;
23
23
}
24
24
25
25
const VirtualKeyboardButtonAnimation : React . FC < RippleProps > = ( {
26
26
onPress,
27
27
backgroundColor,
28
28
onLongPress,
29
+ isSmallScreen,
29
30
children,
30
31
} ) => {
32
+ const virtualKeyboardButtonSize = isSmallScreen ? 65 : 85 ;
31
33
onLongPress = onLongPress || onPress ;
32
34
const centerX = useSharedValue ( 0 ) ;
33
35
const centerY = useSharedValue ( 0 ) ;
@@ -38,8 +40,8 @@ const VirtualKeyboardButtonAnimation: React.FC<RippleProps> = ({
38
40
const tapGestureEvent =
39
41
useAnimatedGestureHandler < TapGestureHandlerGestureEvent > ( {
40
42
onStart : tapEvent => {
41
- centerX . value = VIRTUAL_KEYBOARD_BUTTON_SIZE / 2 ;
42
- centerY . value = VIRTUAL_KEYBOARD_BUTTON_SIZE / 2 ;
43
+ centerX . value = virtualKeyboardButtonSize / 2 ;
44
+ centerY . value = virtualKeyboardButtonSize / 2 ;
43
45
44
46
rippleOpacity . value = 1 ;
45
47
scale . value = 0 ;
@@ -56,7 +58,7 @@ const VirtualKeyboardButtonAnimation: React.FC<RippleProps> = ({
56
58
} ) ;
57
59
58
60
const rStyle = useAnimatedStyle ( ( ) => {
59
- const circleRadius = Math . sqrt ( VIRTUAL_KEYBOARD_BUTTON_SIZE ** 3.2 * 2 ) ;
61
+ const circleRadius = Math . sqrt ( virtualKeyboardButtonSize ** 3.2 * 2 ) ;
60
62
61
63
const translateX = centerX . value - circleRadius ;
62
64
const translateY = centerY . value - circleRadius ;
@@ -94,8 +96,8 @@ const VirtualKeyboardButtonAnimation: React.FC<RippleProps> = ({
94
96
style = { [
95
97
{
96
98
overflow : 'hidden' ,
97
- height : VIRTUAL_KEYBOARD_BUTTON_SIZE ,
98
- width : VIRTUAL_KEYBOARD_BUTTON_SIZE ,
99
+ height : virtualKeyboardButtonSize ,
100
+ width : virtualKeyboardButtonSize ,
99
101
borderRadius : 50 ,
100
102
alignItems : 'center' ,
101
103
justifyContent : 'center' ,
0 commit comments