Files
flyer-crawler.projectium.com/src/providers/MasterItemsProvider.tsx
2026-02-18 10:48:03 +05:00

28 lines
982 B
TypeScript

// src/providers/MasterItemsProvider.tsx
import React, { ReactNode, useMemo } from 'react';
import { MasterItemsContext } from '../contexts/MasterItemsContext';
import { useMasterItemsQuery } from '../hooks/queries/useMasterItemsQuery';
/**
* Provider for master grocery items using TanStack Query (ADR-0005).
*
* This replaces the previous custom useApiOnMount implementation with
* TanStack Query for better caching, automatic refetching, and state management.
*
* Master items are cached longer (10 minutes) since they change infrequently.
*/
export const MasterItemsProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
const { data: masterItems = [], isLoading, error } = useMasterItemsQuery();
const value = useMemo(
() => ({
masterItems,
isLoading,
error: error?.message || null,
}),
[masterItems, isLoading, error],
);
return <MasterItemsContext.Provider value={value}>{children}</MasterItemsContext.Provider>;
};