22
22
* SOFTWARE.
23
23
*/
24
24
25
+ import { useState , useEffect } from "react" ;
25
26
import { Dimensions } from "react-native" ;
26
27
27
28
export const responsiveHeight = h => {
@@ -39,3 +40,56 @@ export const responsiveFontSize = f => {
39
40
const tempHeight = ( 16 / 9 ) * width ;
40
41
return Math . sqrt ( Math . pow ( tempHeight , 2 ) + Math . pow ( width , 2 ) ) * ( f / 100 ) ;
41
42
} ;
43
+
44
+ export const useResponsiveHeight = h => {
45
+ const [ calculatedHeight , setCalculatedHeight ] = useState ( responsiveHeight ( h ) ) ;
46
+
47
+ useEffect ( ( ) => {
48
+ function handleDimensionChange ( ) {
49
+ setCalculatedHeight ( responsiveHeight ( h ) ) ;
50
+ }
51
+
52
+ Dimensions . addEventListener ( "change" , handleDimensionChange ) ;
53
+ return ( ) => {
54
+ Dimensions . removeEventListener ( "change" , handleDimensionChange ) ;
55
+ } ;
56
+ } ) ;
57
+
58
+ return calculatedHeight ;
59
+ } ;
60
+
61
+ export const useResponsiveWidth = w => {
62
+ const [ calculatedWidth , setCalculatedWidth ] = useState ( responsiveWidth ( w ) ) ;
63
+
64
+ useEffect ( ( ) => {
65
+ function handleDimensionChange ( ) {
66
+ setCalculatedWidth ( responsiveWidth ( w ) ) ;
67
+ }
68
+
69
+ Dimensions . addEventListener ( "change" , handleDimensionChange ) ;
70
+ return ( ) => {
71
+ Dimensions . removeEventListener ( "change" , handleDimensionChange ) ;
72
+ } ;
73
+ } ) ;
74
+
75
+ return calculatedWidth ;
76
+ } ;
77
+
78
+ export const useResponsiveFontSize = f => {
79
+ const [ calculatedFontSize , setCalculatedFontSize ] = useState (
80
+ responsiveFontSize ( f )
81
+ ) ;
82
+
83
+ useEffect ( ( ) => {
84
+ function handleDimensionChange ( ) {
85
+ setCalculatedFontSize ( responsiveFontSize ( f ) ) ;
86
+ }
87
+
88
+ Dimensions . addEventListener ( "change" , handleDimensionChange ) ;
89
+ return ( ) => {
90
+ Dimensions . removeEventListener ( "change" , handleDimensionChange ) ;
91
+ } ;
92
+ } ) ;
93
+
94
+ return calculatedFontSize ;
95
+ } ;
0 commit comments