From 0dc1ab949a4bf726f65ffe394f721bbef70c8b93 Mon Sep 17 00:00:00 2001 From: hamed <15238-genius.ha@users.noreply.drupalcode.org> Date: Wed, 15 Jul 2026 18:29:59 +0330 Subject: [PATCH] feat(appointment): add Enter key functionality for mobile search in appointment modal --- assets/admin/pages/AppointmentBookingModal.test.tsx | 11 +++++++++++ assets/admin/pages/AppointmentsPage.tsx | 1 + 2 files changed, 12 insertions(+) diff --git a/assets/admin/pages/AppointmentBookingModal.test.tsx b/assets/admin/pages/AppointmentBookingModal.test.tsx index d8cd549a..ddf5dca0 100644 --- a/assets/admin/pages/AppointmentBookingModal.test.tsx +++ b/assets/admin/pages/AppointmentBookingModal.test.tsx @@ -43,6 +43,17 @@ describe('NewAppointmentModal — جستجوی موبایل‌محور', () => { await waitFor(() => expect(get).toHaveBeenCalledWith('/api/v1/my/appointment/patient-lookup?mobile=09123456789')); }); + it('searches on Enter key in the mobile field', async () => { + get.mockResolvedValue({ success: true, data: { found: false } }); + renderWithProviders( {}} onSuccess={() => {}} />); + + const input = screen.getByPlaceholderText('مثال: 09123456789'); + fireEvent.change(input, { target: { value: '09121234567' } }); + fireEvent.keyDown(input, { key: 'Enter' }); + + await waitFor(() => expect(get).toHaveBeenCalledWith('/api/v1/my/appointment/patient-lookup?mobile=09121234567')); + }); + it('found patient with national code books directly without extra fields', async () => { get.mockResolvedValue({ success: true, data: { found: true, name: 'علی محمدی', mobile: '09121234567', national_code: '0012345678' } }); renderWithProviders( {}} onSuccess={() => {}} />); diff --git a/assets/admin/pages/AppointmentsPage.tsx b/assets/admin/pages/AppointmentsPage.tsx index e6713005..0ecb3932 100644 --- a/assets/admin/pages/AppointmentsPage.tsx +++ b/assets/admin/pages/AppointmentsPage.tsx @@ -192,6 +192,7 @@ export function NewAppointmentModal({ maxLength={11} value={mobile} onChange={e => onMobileChange(e.target.value)} + onKeyDown={e => { if (e.key === 'Enter' && mobileValid && !search.isPending) search.mutate(); }} placeholder="مثال: 09123456789" style={{ ...inputSx, direction: 'ltr' }} autoFocus