Files
medusa-store/www/apps/api-reference/providers/area.tsx
Shahed Nasser 22f30f54fd docs: update api-reference project for v2 (#7307)
* remove everything v1 and make v2 default

* move main v2 rewrites to book

* move rewrites to book + other fixes
2024-05-16 09:02:35 +02:00

52 lines
1.1 KiB
TypeScript

"use client"
import type { Area } from "@/types/openapi"
import { useSearch } from "docs-ui"
import { createContext, useContext, useEffect, useState } from "react"
type AreaContextType = {
area: Area
setArea: (value: Area) => void
}
const AreaContext = createContext<AreaContextType | null>(null)
type AreaProviderProps = {
area: Area
children: React.ReactNode
}
const AreaProvider = ({ area: passedArea, children }: AreaProviderProps) => {
const [area, setArea] = useState<Area>(passedArea)
const { defaultFilters, setDefaultFilters } = useSearch()
useEffect(() => {
if (!defaultFilters.includes(`${area}-v2`)) {
setDefaultFilters([`${area}-v2`])
}
}, [area, defaultFilters, setDefaultFilters])
return (
<AreaContext.Provider
value={{
area,
setArea,
}}
>
{children}
</AreaContext.Provider>
)
}
export default AreaProvider
export const useArea = (): AreaContextType => {
const context = useContext(AreaContext)
if (!context) {
throw new Error("useAreaProvider must be used inside an AreaProvider")
}
return context
}