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 ListProvincesCitiesProps { data: McsData; onSelectCity: handleLocationSelectFn; } export const ListProvincesCities: React.FC = ({ data, onSelectCity, }: ListProvincesCitiesProps) => { const [selectedProvinceIndex, setSelectedProvinceIndex] = useState(0); const [selectedCityIndex, setSelectedCityIndex] = useState(undefined); const provinces = _.sortBy(data.provinces, ["title"]); const cities = _.sortBy( _.filter(data.cities, (city) => { if (provinces[selectedProvinceIndex]?.id) { return ( city.province_id === provinces[selectedProvinceIndex]?.id ); } return false; }), ["title"] ); const handleProvinceClick: handleLocationSelectFn = (province) => { const index = _.findIndex(provinces, ["id", province.id]); if (selectedProvinceIndex !== index) { setSelectedProvinceIndex(index); setSelectedCityIndex(undefined); } }; return ( ); };