import { useMemo } from 'react'; import { WeightSliderRow } from './weight-slider-row'; import { CollapsibleSection } from './collapsible-section'; import { useData } from '@/providers/data-provider'; import type { PriorityConfig } from '@/lib/scoring'; interface CampaignWeightsPanelProps { config: PriorityConfig; onChange: (config: PriorityConfig) => void; } export const CampaignWeightsPanel = ({ config, onChange }: CampaignWeightsPanelProps) => { const { campaigns } = useData(); const updateCampaign = (campaignId: string, weight: number) => { onChange({ ...config, campaignWeights: { ...config.campaignWeights, [campaignId]: weight }, }); }; const badge = useMemo(() => { if (!campaigns || campaigns.length === 0) return 'No campaigns'; const configured = campaigns.filter(c => config.campaignWeights[c.id] != null).length; return `${campaigns.length} campaigns ยท ${configured} configured`; }, [campaigns, config.campaignWeights]); if (!campaigns || campaigns.length === 0) { return (

Campaign weights will apply once campaigns are created.

); } return (
{campaigns.map(campaign => ( updateCampaign(campaign.id, w)} /> ))}
); };