เพิ่ม trim() ให้ email และ booking number

fb55321 · ccr-frontend-user · branch feature/booking-flow-bug-fix
Natnichag24 · 28 ส.ค. 2026 10:47 · แก้ 1 ไฟล์ (+2 −2)

ไฟล์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 อื่น