import React, { useState } from "react"; import _ from "lodash"; import McsList from "./McsList"; import { Grid } from "@material-ui/core"; import { McsData } from "./types/data"; import { handleLocationSelectFn } from "./McsWidget"; interface ListCountriesCitiesProps { data: McsData; onSelectCity: handleLocationSelectFn; } export const ListCountriesCities: React.FC = ({ data, onSelectCity, }: ListCountriesCitiesProps) => { const [selectedCountryIndex, setSelectedCountryIndex] = useState(0); const [selectedCityIndex, setSelectedCityIndex] = useState(undefined); const countries = _.sortBy(data.countries, ["title"]); const cities = _.sortBy( _.filter(data.cities, (city) => { if (countries[selectedCountryIndex]?.id) { return city.country_id === countries[selectedCountryIndex].id; } return false; }), ["title"] ); const handleCountryClick: handleLocationSelectFn = (country) => { const index = _.findIndex(countries, ["id", country.id]); if (selectedCountryIndex !== index) { setSelectedCountryIndex(index); setSelectedCityIndex(undefined); } }; return ( ); };