เพิ่ม trim() ให้ email และ booking number
| ไฟล์ | app/(app)/booking/manage/page.tsx |
| หน้า | Manage Booking (จัดการการจอง — ผู้ใช้ guest ยืนยันตัวด้วย email OTP) |
| ประเภท | refactor — กันข้อมูล input มีช่องว่างติดมา |
จุดที่ 1 — email ก่อนส่งเข้า passwordless API
handleSubmit
email ที่ผู้ใช้กรอก ถูก trim ก่อนยิงไป /api/auth/passwordless/start (ขั้นขอ OTP)
- body: JSON.stringify({ email: data.email, turnstileToken, isManageBooking: true })+ body: JSON.stringify({ email: data.email.trim(), turnstileToken, isManageBooking: true })
จุดที่ 2 — booking number ก่อนส่งเข้า OTPModal
<OTPModal />
เลขที่การจองที่ส่งเป็น prop ถูก trim ด้วย (ใช้ ?. เผื่อค่าเป็น undefined)
- bookingNo={bookingNoValue}+ bookingNo={bookingNoValue?.trim()}
DEMO — ลองพิมพ์ / วางค่าที่ติดช่องว่างดู
ลองวาง email หรือเลขจองที่มีช่องว่างหน้า-หลัง (ปุ่มด้านล่างวางตัวอย่างให้) แล้วดูว่าโค้ดเก่า vs โค้ดใหม่ ส่งค่าอะไรออกไปจริง
| โค้ดเก่า ส่ง | |
| โค้ดใหม่ ส่ง | |
| bookingNo เก่า | |
| bookingNo ใหม่ | |
ช่องว่างแสดงเป็น · เพื่อให้มองเห็น — ค่าที่มี · คือค่าที่ API ฝั่ง backend หา record ไม่เจอ
ทำไมต้องแก้
ผู้ใช้มักคัดลอก email / เลขที่การจองมาวางจากอีเมลยืนยัน ซึ่งติดช่องว่างหน้า-หลังมาด้วย ค่าที่มีช่องว่างทำให้ระบบหา booking ไม่เจอหรือส่ง OTP ไม่ผ่านทั้งที่ข้อมูลถูกต้อง การ trim ที่จุดส่งออกทั้งสองจุดปิดเคสนี้โดยไม่กระทบ logic อื่น