// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import React, {createContext, useCallback, useContext, useRef, useState} from 'react'; import {View} from 'react-native'; type TutorialContextType = { rootRef: React.RefObject; rootOffset: number; measureRootOffset: () => void; } const TutorialContext = createContext({ rootRef: {current: null}, rootOffset: 0, measureRootOffset: () => undefined, }); export const TutorialProvider = ({children}: {children: React.ReactNode}) => { const rootRef = useRef(null); const [rootOffset, setRootOffset] = useState(0); const measureRootOffset = useCallback(() => { rootRef.current?.measureInWindow((_x, y) => { setRootOffset(y); }); }, []); return ( {children} ); }; export const useTutorial = () => useContext(TutorialContext);