diff --git a/client/src/containers/countries/item.tsx b/client/src/containers/countries/item.tsx index aa3cf40b..7334f0e6 100644 --- a/client/src/containers/countries/item.tsx +++ b/client/src/containers/countries/item.tsx @@ -1,16 +1,25 @@ 'use client'; +import { useCallback } from 'react'; + import Flag from 'react-world-flags'; -import Link from 'next/link'; +import { useRouter } from 'next/navigation'; + +import { useSetAtom } from 'jotai'; + +import { tmpBboxAtom } from '@/store'; import { useGetCountryIndicatorFields } from '@/types/generated/country-indicator-field'; import { CountryListResponseDataItem } from '@/types/generated/strapi.schemas'; +import type { Bbox } from '@/types/map'; import { useSyncQueryParams } from '@/hooks/datasets'; - export default function CountryItem({ data }: { data: CountryListResponseDataItem }) { + const setTempBbox = useSetAtom(tmpBboxAtom); + const queryParams = useSyncQueryParams(); + const { push } = useRouter(); const { data: projectsCountIndicator } = useGetCountryIndicatorFields( { @@ -27,10 +36,15 @@ export default function CountryItem({ data }: { data: CountryListResponseDataIte } ); + const handleClick = useCallback(() => { + push(`/countries/${data.id}${queryParams}`); + setTempBbox(data.attributes?.bbox as Bbox); + }, [data, push, queryParams, setTempBbox]); + return ( -