Live video on the AT Protocol
at eli/docker-deployment-docs 32 lines 906 B view raw
1import { useCallback, useState } from "react"; 2import { LayoutChangeEvent } from "react-native"; 3 4export function useOuterAndInnerDimensions() { 5 const [outerDimensions, setOuterDimensions] = useState({ 6 width: 0, 7 height: 0, 8 }); 9 const [innerDimensions, setInnerDimensions] = useState({ 10 width: 0, 11 height: 0, 12 }); 13 14 const onOuterLayout = useCallback((event: LayoutChangeEvent) => { 15 const { width, height } = event.nativeEvent.layout; 16 setOuterDimensions({ width, height }); 17 }, []); 18 19 const onInnerLayout = useCallback((event: LayoutChangeEvent) => { 20 const { width, height } = event.nativeEvent.layout; 21 setInnerDimensions({ width, height }); 22 }, []); 23 24 return { 25 outerWidth: outerDimensions.width, 26 outerHeight: outerDimensions.height, 27 innerWidth: innerDimensions.width, 28 innerHeight: innerDimensions.height, 29 onOuterLayout, 30 onInnerLayout, 31 }; 32}