'use client'; import React, { createContext, useContext, useMemo } from 'react'; import { GraphInsightsPayload } from '../types'; type BusinessRuleMeta = { uid?: string; category?: string; likert_label?: string; label?: string; provider?: string; weight?: number; }; type BusinessRuleIndex = Record; const BusinessRulesContext = createContext(null); export const BusinessRulesProvider = ({ items, children, }: { items?: GraphInsightsPayload['business_rules_all']; children: React.ReactNode; }) => { const index = useMemo(() => { const map: BusinessRuleIndex = {}; for (const it of items || []) { try { const uid = String(((it as unknown) as { uid?: string })?.uid || ''); if (!uid) continue; map[uid] = { uid, category: it?.category, likert_label: it?.likert_label, label: it?.label, provider: it?.provider, weight: it?.weight, }; } catch { // ignore malformed item } } return map; }, [items]); return {children}; }; export const useBusinessRuleMeta = (uid?: string): BusinessRuleMeta | undefined => { const ctx = useContext(BusinessRulesContext); if (!ctx || !uid) return undefined; return ctx[uid]; };