MainScrollContainerContext.tsx28 lines · main
1import { createContext, useContext, useState, type ReactNode } from 'react'
2
3const MainScrollContainerContext = createContext<HTMLElement | null>(null)
4const SetMainScrollContainerContext = createContext<
5 React.Dispatch<React.SetStateAction<HTMLElement | null>>
6>(() => {})
7
8export const MainScrollContainerProvider = ({ children }: { children: ReactNode }) => {
9 const [container, setContainer] = useState<HTMLElement | null>(null)
10
11 return (
12 <MainScrollContainerContext.Provider value={container}>
13 <SetMainScrollContainerContext.Provider value={setContainer}>
14 {children}
15 </SetMainScrollContainerContext.Provider>
16 </MainScrollContainerContext.Provider>
17 )
18}
19
20export const useSetMainScrollContainer = () => {
21 const context = useContext(SetMainScrollContainerContext)
22 return context
23}
24
25export const useMainScrollContainer = () => {
26 const context = useContext(MainScrollContainerContext)
27 return context
28}