Live video on the AT Protocol
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}