feat: handle foreign address
All checks were successful
Spell Check / Spell Check with Typos (push) Successful in 4s

This commit is contained in:
Methapon2001 2025-07-16 09:51:27 +07:00
parent 5aa8b06cf2
commit b7a13b2d7a

View file

@ -288,6 +288,7 @@ function replaceEmptyField<T>(data: T): T {
} }
type FullAddress = { type FullAddress = {
addressForeign?: boolean;
address: string; address: string;
addressEN: string; addressEN: string;
moo?: string; moo?: string;
@ -296,8 +297,14 @@ type FullAddress = {
soiEN?: string; soiEN?: string;
street?: string; street?: string;
streetEN?: string; streetEN?: string;
provinceText?: string | null;
provinceTextEN?: string | null;
province?: Province | null; province?: Province | null;
districtText?: string | null;
districtTextEN?: string | null;
district?: District | null; district?: District | null;
subDistrictText?: string | null;
subDistrictTextEN?: string | null;
subDistrict?: SubDistrict | null; subDistrict?: SubDistrict | null;
en?: boolean; en?: boolean;
}; };
@ -331,13 +338,22 @@ function addressFull(addr: FullAddress, lang: "th" | "en" = "en") {
if (addr.soi) fragments.push(`ซอย ${addr.soi},`); if (addr.soi) fragments.push(`ซอย ${addr.soi},`);
if (addr.street) fragments.push(`ถนน${addr.street},`); if (addr.street) fragments.push(`ถนน${addr.street},`);
if (addr.subDistrict) { if (!addr.addressForeign && addr.subDistrict) {
fragments.push(`${addr.province?.id === "10" ? "แขวง" : "ตำบล"}${addr.subDistrict.name},`); fragments.push(`${addr.province?.id === "10" ? "แขวง" : "ตำบล"}${addr.subDistrict.name}`);
} }
if (addr.district) { if (addr.addressForeign && addr.subDistrictText) {
fragments.push(`${addr.province?.id === "10" ? "เขต" : "อำเภอ"}${addr.district.name},`); fragments.push(`ตำบล${addr.subDistrictText}`);
} }
if (addr.province) fragments.push(`จังหวัด${addr.province.name},`);
if (!addr.addressForeign && addr.district) {
fragments.push(`${addr.province?.id === "10" ? "เขต" : "อำเภอ"}${addr.district.name}`);
}
if (addr.addressForeign && addr.districtText) {
fragments.push(`อำเภอ${addr.districtText}`);
}
if (!addr.addressForeign && addr.province) fragments.push(`จังหวัด${addr.province.name}`);
if (addr.addressForeign && addr.provinceText) fragments.push(`จังหวัด${addr.provinceText}`);
break; break;
default: default:
@ -346,11 +362,26 @@ function addressFull(addr: FullAddress, lang: "th" | "en" = "en") {
if (addr.soiEN) fragments.push(`Soi ${addr.soiEN},`); if (addr.soiEN) fragments.push(`Soi ${addr.soiEN},`);
if (addr.streetEN) fragments.push(`${addr.streetEN} Rd.`); if (addr.streetEN) fragments.push(`${addr.streetEN} Rd.`);
if (addr.subDistrict) { if (!addr.addressForeign && addr.subDistrict) {
fragments.push(`${addr.subDistrict.nameEN} sub-district,`); fragments.push(`${addr.subDistrict.nameEN} sub-district,`);
} }
if (addr.district) fragments.push(`${addr.district.nameEN} district,`); if (addr.addressForeign && addr.subDistrictTextEN) {
if (addr.province) fragments.push(`${addr.province.nameEN},`); fragments.push(`${addr.subDistrictTextEN} sub-district,`);
}
if (!addr.addressForeign && addr.district) {
fragments.push(`${addr.district.nameEN} district,`);
}
if (addr.addressForeign && addr.districtTextEN) {
fragments.push(`${addr.districtTextEN} district,`);
}
if (!addr.addressForeign && addr.province) {
fragments.push(`${addr.province.nameEN},`);
}
if (addr.addressForeign && addr.provinceTextEN) {
fragments.push(`${addr.provinceTextEN} district,`);
}
break; break;
} }