"use client"; import { getProvinces, getCities, getRegionLocation, } from "@/lib/data/regions"; interface RegionSelectProps { provinceCode: string; cityCode: string; onProvinceChange: (code: string) => void; onCityChange: (code: string) => void; label?: string; cityOptional?: boolean; } export default function RegionSelect({ provinceCode, cityCode, onProvinceChange, onCityChange, label = "出生地域", cityOptional = true, }: RegionSelectProps) { const provinces = getProvinces(); const cities = provinceCode ? getCities(provinceCode) : []; const location = provinceCode ? getRegionLocation(provinceCode, cityCode) : null; function handleProvinceChange(code: string) { onProvinceChange(code); if (!code) { onCityChange(""); return; } const list = getCities(code); onCityChange(list[0]?.code ?? ""); } return (
{cityOptional && provinceCode && location && (

城市可选;未选城市时使用省份经度。当前: {location.name}({location.longitude}°)

)}
); } export function useRegionLocation(provinceCode: string, cityCode: string) { return provinceCode ? getRegionLocation(provinceCode, cityCode) : null; }