useYourSharedLogic.ts
// Hook with the logic you want to share across your page's components
export const useYourSharedLogic = () => {
// fetch, calculate, etc
return {
data
}
}
context/index.ts
import { useYourSharedLogic } from 'hooks/useYourSharedLogic'
// Create context for the page
export const {
PageProvider,
usePageContext,
} = createPageContext(useYourSharedLogic)
Page.tsx
import { PageProvider } from './context'
// Wrap your page into the provider
export Page = () => {
return (
<PageProvider>
<YourPageComponentsTreeThatNeedsContext />
</PageProvider>
)
}
Component.tsx
// Now, you're free to use it 🎉🎉🎉
export const Component = () => {
const { data } = usePageContext()
return <div>Hej, here is my {data}</div>
}