Files
dekun 96b659fbe5 Fix liuyao UX: CSS coins, region auto-select, and clearer AI flow.
Replace missing coin images with CSS 3D coins, auto-select city on province change, expand Shandong cities, and improve AI interpretation prompts after six casts.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 21:24:51 +08:00

55 lines
1.3 KiB
TypeScript

import regionsData from "@/lib/data/regions.json";
export interface RegionNode {
name: string;
longitude: number;
children?: Record<string, RegionNode>;
}
export type RegionsData = Record<string, RegionNode>;
export const regions = regionsData as RegionsData;
export function getProvinces(): { code: string; name: string }[] {
return Object.entries(regions)
.map(([code, node]) => ({
code,
name: node.name,
}))
.sort((a, b) => a.name.localeCompare(b.name, "zh-CN"));
}
export function getCities(provinceCode: string): { code: string; name: string }[] {
const province = regions[provinceCode];
if (!province?.children) {
return [];
}
return Object.entries(province.children)
.map(([code, node]) => ({
code,
name: node.name,
}))
.sort((a, b) => a.name.localeCompare(b.name, "zh-CN"));
}
export function getRegionLocation(
provinceCode: string,
cityCode: string,
): { name: string; longitude: number } | null {
const province = regions[provinceCode];
if (!province) {
return null;
}
const city = province.children?.[cityCode];
if (city) {
return {
name: `${province.name}${city.name}`,
longitude: city.longitude,
};
}
return {
name: province.name,
longitude: province.longitude,
};
}