react-thaizip

บทนำ

react-thaizip เพิ่มคอมโพเนนต์กรอกที่อยู่ไทยลงในโปรเจกต์ React และ Next.js โดยคัดลอกซอร์สโค้ดมาให้คุณเป็นเจ้าของ

'use client'

import { ThaiAddressAutocomplete } from '@/components/thai-address-autocomplete'

export default function AutocompleteDemo() {
  return <ThaiAddressAutocomplete onValueChange={(address) => console.log(address)} />
}

react-thaizip ไม่ใช่ component library ที่ติดตั้งเป็น dependency แต่เป็น CLI ที่คัดลอกซอร์สโค้ดคอมโพเนนต์ที่อยู่ไทยลงในโปรเจกต์ของคุณ แบบเดียวกับ shadcn/ui เมื่อเพิ่มแล้ว ไฟล์เหล่านั้นเป็นโค้ดของคุณ แก้ markup, style หรือพฤติกรรมได้โดยตรง

ตัวอย่างด้านบนคือ ThaiAddressAutocomplete จาก template จริงที่ CLI คัดลอกให้ ไม่ใช่สำเนาที่เขียนขึ้นสำหรับเว็บเอกสาร กด "ดูโค้ด" เพื่อดูโค้ดที่ใช้

หลักการ

  • เป็นเจ้าของโค้ด: คอมโพเนนต์อยู่ในโปรเจกต์ของคุณ ไม่ต้อง override style หรือห่อ wrapper เพื่อปรับแต่ง
  • ข้อมูลครบในตัว: ค้นหาตำบล อำเภอ จังหวัด และรหัสไปรษณีย์ทั้งภาษาไทยและอังกฤษด้วย thaizip โดยไม่ต้องเรียก API ภายนอก
  • เข้ากับ design system ที่มีอยู่: ได้แบบ vanilla (Base UI + Tailwind) หรือแบบที่ประกอบจาก primitives ของ shadcn/ui (Base UI, Radix หรือ React Aria) ตามที่ init ตรวจพบ
  • พร้อมใช้กับ AI: ทุกหน้ามีฉบับ Markdown พร้อมโค้ดตัวอย่าง รวมถึง /llms.txt และ /llms-full.txt ดู ใช้ react-thaizip กับ AI

คอมโพเนนต์

คอมโพเนนต์ใช้เมื่อ
Autocompleteให้ผู้ใช้พิมพ์ค้นหาด้วยชื่อตำบล อำเภอ จังหวัด หรือรหัสไปรษณีย์
Cascade selectให้ผู้ใช้เลือกจังหวัด → อำเภอ/เขต → ตำบล/แขวง ตามลำดับ
Address formต้องการบ้านเลขที่ หมู่ ซอย ถนน พร้อมที่อยู่ตามลำดับชั้นในฟอร์มเดียว
Address displayแสดงที่อยู่ที่บันทึกไว้แบบอ่านอย่างเดียว
Address form fieldผูก cascade select เข้ากับ react-hook-form

เริ่มอย่างรวดเร็ว

npx react-thaizip init
npx react-thaizip add autocomplete

init ตรวจ Tailwind และ shadcn/ui แล้วสร้าง thaizip.config.json ส่วน add คัดลอกคอมโพเนนต์พร้อมไฟล์ช่วยเหลือและติดตั้ง dependencies ดูรายละเอียดทีละขั้นที่ เริ่มต้นใช้งาน

ต้องการ API ค้นหาที่อยู่ระดับล่างเพื่อสร้าง UI เอง ดู thaizip Core API

On this page