mirror of https://git.lenooby09.tech/LeNooby09/social-app.git
at tooltip 49 lines 994 B view raw
1import React from 'react' 2import {SharedValue, useSharedValue} from 'react-native-reanimated' 3 4type StateContext = { 5 headerHeight: SharedValue<number> 6 footerHeight: SharedValue<number> 7} 8 9const stateContext = React.createContext<StateContext>({ 10 headerHeight: { 11 value: 0, 12 addListener() {}, 13 removeListener() {}, 14 modify() {}, 15 get() { 16 return 0 17 }, 18 set() {}, 19 }, 20 footerHeight: { 21 value: 0, 22 addListener() {}, 23 removeListener() {}, 24 modify() {}, 25 get() { 26 return 0 27 }, 28 set() {}, 29 }, 30}) 31 32export function Provider({children}: React.PropsWithChildren<{}>) { 33 const headerHeight = useSharedValue(0) 34 const footerHeight = useSharedValue(0) 35 36 const value = React.useMemo( 37 () => ({ 38 headerHeight, 39 footerHeight, 40 }), 41 [headerHeight, footerHeight], 42 ) 43 44 return <stateContext.Provider value={value}>{children}</stateContext.Provider> 45} 46 47export function useShellLayout() { 48 return React.useContext(stateContext) 49}