Files
parsshop/components/context/categoryprovider.tsx
2026-03-30 10:06:30 +03:30

35 lines
928 B
TypeScript

"use client";
import { createContext, useContext, useEffect, useState } from "react";
import { getAllCategories } from "@/public/src/services/categories/store";
import { Category } from "@/public/src/types/categories";
interface CategoryContextType {
categories: Category[];
rootCategories: Category[];
}
const CategoryContext = createContext<CategoryContextType>({
categories: [],
rootCategories: [],
});
export function CategoryProvider({ children }: { children: React.ReactNode }) {
const [categories, setCategories] = useState<Category[]>([]);
useEffect(() => {
getAllCategories().then((data) => setCategories(data));
}, []);
const rootCategories = categories.filter((c) => !c.parent);
return (
<CategoryContext.Provider value={{ categories, rootCategories }}>
{children}
</CategoryContext.Provider>
);
}
export function useCategories() {
return useContext(CategoryContext);
}