เริ่มต้นใช้งาน
Scaffold คอมโพเนนต์ที่อยู่ไทยพร้อมใช้ลงในโปรเจกต์ React หรือ Next.js แบบเดียวกับ shadcn/ui
react-thaizip เป็น CLI ไม่ใช่ไลบรารีคอมโพเนนต์ที่ติดตั้งเป็น dependency มันคัดลอกซอร์สของคอมโพเนนต์ลงในโปรเจกต์ของคุณแบบเดียวกับ shadcn/ui ไฟล์ที่ได้จึงเป็นโค้ดของคุณและแก้ได้เต็มที่
สิ่งที่ต้องมี
Node.js 18 ขึ้นไป และโปรเจกต์ React หรือ Next.js ที่ติดตั้ง Tailwind CSS v3 หรือ v4 ไว้แล้ว init ตรวจหา Tailwind แต่จะไม่ติดตั้งให้
ตั้งค่า
npx react-thaizip initinit ตรวจโครงสร้างโปรเจกต์ package manager, TypeScript, Tailwind และ shadcn/ui เพิ่ม design tokens ลง global stylesheet ติดตั้ง thaizip แล้วสร้าง thaizip.config.json ถ้ามี components.json ของ shadcn/ui คอมโพเนนต์จะประกอบจาก primitives ของคุณเอง (Base UI, Radix หรือ React Aria) ถ้าไม่มีจะได้แบบ vanilla Base UI สำหรับ Tailwind v3 จะพิมพ์ theme.extend snippet ให้นำไปเพิ่มเอง
เพิ่มคอมโพเนนต์
npx react-thaizip add autocompletecomponents/
thai-address-autocomplete.tsx
hooks/
use-thai-address-index.ts
lib/
utils.tsadd ติดตั้ง dependency ที่ขาดและพิมพ์ import path ให้ ใช้ path นั้น ตัวอย่างในเอกสารนี้ใช้ alias @/components/...
import { ThaiAddressAutocomplete } from '@/components/thai-address-autocomplete'
export function AddressField() {
return <ThaiAddressAutocomplete onValueChange={(address) => console.log(address)} />
}คอมโพเนนต์
ค้นหาที่อยู่ (autocomplete)
พิมพ์ค้นหาด้วยตำบล อำเภอ จังหวัด หรือรหัสไปรษณีย์
เลือกที่อยู่ตามลำดับ (cascade select)
เลือกจังหวัด → อำเภอ → ตำบล ตามลำดับ
ฟอร์มที่อยู่เต็ม
บ้านเลขที่ หมู่ ซอย ถนน พร้อมลำดับที่อยู่
แสดงที่อยู่
แสดงที่อยู่ที่บันทึกไว้แบบอ่านอย่างเดียว
ฟิลด์สำหรับ react-hook-form
cascade select ที่ผูกกับ react-hook-form