import React, { createContext, PropsWithChildren, useContext, useMemo, } from 'react'; import LeafyGreenProvider from '@leafygreen-ui/leafygreen-provider'; import { getLgIds } from '../utils'; import { type CodeProviderProps } from './CodeContext.types'; export const CodeContext = createContext>({ lgIds: getLgIds(), }); export const useCodeContext = () => useContext( CodeContext as React.Context, ); const CodeContextProvider = ({ children, contents, darkMode, language, isLoading, showPanel, lgIds = getLgIds(), }: PropsWithChildren) => { const CodeProvider = (CodeContext as React.Context) .Provider; const CodeProviderData = useMemo(() => { return { contents, language, showPanel, isLoading, lgIds, }; }, [contents, language, showPanel, isLoading, lgIds]); return ( {children} ); }; export default CodeContextProvider;