2222 * SOFTWARE.
2323 */
2424
25+ import { useState , useEffect } from "react" ;
2526import { Dimensions } from "react-native" ;
2627
2728export const responsiveHeight = h => {
@@ -39,3 +40,56 @@ export const responsiveFontSize = f => {
3940 const tempHeight = ( 16 / 9 ) * width ;
4041 return Math . sqrt ( Math . pow ( tempHeight , 2 ) + Math . pow ( width , 2 ) ) * ( f / 100 ) ;
4142} ;
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