diff --git a/src/components/rules/RulesOverview.tsx b/src/components/rules/RulesOverview.tsx index 31aa651..6994664 100644 --- a/src/components/rules/RulesOverview.tsx +++ b/src/components/rules/RulesOverview.tsx @@ -404,7 +404,7 @@ function computeStatusCount(programList: Program[]) { export default function RulesOverview({ country = 'us' }: { country?: Country }) { const [viewMode, setViewMode] = useState('programs'); - const [selectedProgram, setSelectedProgram] = useState(null); + const [selectedProgramId, setSelectedProgramId] = useState(null); const [selectedState, setSelectedState] = useState(null); const [search, setSearch] = useState(''); const [yearFilter, setYearFilter] = useState(null); @@ -414,6 +414,11 @@ export default function RulesOverview({ country = 'us' }: { country?: Country }) fetchPrograms(country).then(setPrograms); }, [country]); + const selectedProgram = useMemo( + () => programs.find(program => program.id === selectedProgramId) ?? null, + [programs, selectedProgramId], + ); + const availableYears = useMemo(() => collectAllYears(programs), [programs]); const yearFilteredPrograms = useMemo(() => { @@ -504,7 +509,7 @@ export default function RulesOverview({ country = 'us' }: { country?: Country }) {(['programs', 'states'] as ViewMode[]).map(mode => (