จัดรูปแบบและแปลงที่อยู่
แปลงผลการค้นหาเป็น label สำหรับ dropdown หรือเป็นที่อยู่แบบมีโครงสร้างสำหรับบันทึก
formatThaiAddressSuggestion
function formatThaiAddressSuggestion(record: ThaiAddressRecord, options?: { locale?: 'th' | 'en' }): ThaiAddressSuggestionสร้าง label พร้อมแสดงสำหรับรายการใน dropdown
const suggestions = searchThaiAddress(index, 'ลาดพร้าว').map((r) => formatThaiAddressSuggestion(r))
suggestions[0].label // 'ลาดพร้าว > เขตลาดพร้าว > กรุงเทพมหานคร 10230'
formatThaiAddressSuggestion(record, { locale: 'en' }).label // 'Lat Phrao > Khet Lat Phrao > Bangkok 10230'type ThaiAddressSuggestion = {
id: string // String(record.tambonId)
label: string // labelTh หรือ labelEn เมื่อ locale เป็น 'en'
labelTh: string
labelEn: string
tambon: string
tambonEn: string
amphure: string
amphureEn: string
province: string
provinceEn: string
zipCode: string
}resolveThaiAddress
function resolveThaiAddress(record: ThaiAddressRecord): ResolvedThaiAddressสร้าง object ที่อยู่สำหรับบันทึก มีค่าเดียวกันในชื่อฟิลด์สองแบบ เลือกแบบที่เข้ากับ schema ของคุณ
type ResolvedThaiAddress = {
// แบบไทย
tambon: string
tambonEn: string
amphure: string
amphureEn: string
province: string
provinceEn: string
zipCode: string
// แบบอังกฤษ ค่าเดียวกัน
subdistrict: string
subdistrictEn: string
district: string
districtEn: string
postalCode: string
}React hook คืนค่านี้ และคอมโพเนนต์ของ react-thaizip ก็ใช้ค่านี้เป็น value