import React, { useState, useContext } from 'react' import { noop } from 'lodash-es' import type { AppProps } from 'AppProps' interface AppContextProps extends AppProps { setAppContext: (value: Partial) => void } const AppContext = React.createContext({ standalone: true, setAppContext: noop, hooks: {}, components: {} }) export const AppContextProvider: React.FC<{ value: AppProps }> = ({ value: initialValue, children }) => { const [appStates, setAppStates] = useState(initialValue) return ( { setAppStates({ ...appStates, ...props }) } }}> {children} ) } export const useAppContext: () => AppContextProps = () => useContext(AppContext)