feat: add doc template function address without area

This commit is contained in:
Methapon2001 2025-01-23 10:09:45 +07:00
parent 4031a8121c
commit ee53b8cbc4

View file

@ -146,6 +146,9 @@ export class DocTemplateController extends Controller {
dateLongEN: (date: string) => dateFormat({ date, locale: "en-US" }),
dateTimeLongEN: (date: string) =>
dateFormat({ date, withTime: true, locale: "en-US", monthStyle: "long" }),
address,
addressTH: (addr: FullAddress) => address(addr, "th"),
addressEN: (addr: FullAddress) => address(addr, "en"),
addressFull,
addressFullTH: (addr: FullAddress) => addressFull(addr, "th"),
addressFullEN: (addr: FullAddress) => addressFull(addr, "en"),
@ -193,6 +196,26 @@ type FullAddress = {
en?: boolean;
};
function address(addr: FullAddress, lang: "th" | "en" = "en") {
let fragments: string[];
switch (lang) {
case "th":
fragments = [`${addr.address},`];
if (addr.moo) fragments.push(`หมู่ ${addr.moo},`);
if (addr.soi) fragments.push(`ซอย ${addr.soi},`);
if (addr.street) fragments.push(`ถนน${addr.street},`);
break;
default:
fragments = [`${addr.addressEN},`];
if (addr.mooEN) fragments.push(`Moo ${addr.mooEN},`);
if (addr.soiEN) fragments.push(`Soi ${addr.soiEN},`);
if (addr.streetEN) fragments.push(`${addr.streetEN} Rd.`);
break;
}
return fragments.join(" ");
}
function addressFull(addr: FullAddress, lang: "th" | "en" = "en") {
let fragments: string[];
switch (lang) {