'use client' import { createContext, useContext, FC, Fragment, PropsWithChildren, useState, useEffect, } from 'react' import { useDynamicModal, defaultProps, ModalDataProps, } from '@app/data/local/useDynamicModal' import { useMiniPlayer } from '@app/data' import { HomeManager } from '@app/managers' type BaseProps = FC> const AppContext = createContext({ modelData: defaultProps, // dynamic modal data miniPlayer: { open: false, title: '', data: null, }, setModal: (_x: ModalDataProps) => {}, setMiniPlayerContent: (_open?: boolean, _data?: any, _title?: string) => {}, selectedWebsite: '', // view mode for main display setSelectedWebsite: (_name: string) => {}, }) export const InteractiveProviderWrapper = AppContext.Provider export const InteractiveProviderMain: BaseProps = ({ children }) => { const [selectedWebsite, setSelectedWebsite] = useState('') const { modelData, setModal } = useDynamicModal() const { miniPlayer, setMiniPlayerContent } = useMiniPlayer() useEffect(() => { setSelectedWebsite(HomeManager.selectedWebsite) }, []) return ( {children} ) } export const InteractiveProvider: BaseProps = ({ children, load }) => { if (!load) { return {children} } return {children} } export function useInteractiveContext() { return useContext(AppContext) }