-
Notifications
You must be signed in to change notification settings - Fork 11.6k
fix: phone-input #23729
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
fix: phone-input #23729
Conversation
closes: calcom#23722
|
@hemantmm is attempting to deploy a commit to the cal Team on Vercel. A member of the Team first needs to authorize it. |
WalkthroughRemoved react-hook-form context usage from BookingFields.tsx and added a guard to skip legacy phone fields ( Possibly related PRs
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests
Tip 👮 Agentic pre-merge checks are now available in preview!Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.
Please see the documentation for more information. Example: reviews:
pre_merge_checks:
custom_checks:
- name: "Undocumented Breaking Changes"
mode: "warning"
instructions: |
Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).Please share your feedback with us on this Discord post. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx (1)
36-41: Fix reschedule readOnly guard: undefined treated as “has bookingData”.bookingData !== null evaluates true when bookingData is undefined, unintentionally locking fields read-only. Use a nullish check.
Apply:
- bookingData !== null; + bookingData != null;
🧹 Nitpick comments (2)
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx (1)
46-49: Minor: simplify view gating.Inline and use .some for clarity.
- const fieldViews = field.views; - if (fieldViews && !fieldViews.find((view) => view.id === currentView)) { + if (field.views && !field.views.some((view) => view.id === currentView)) { return null; }packages/features/bookings/lib/getBookingFields.ts (1)
356-372: Make attendeePhoneNumber visible and merge sources — de-dupe to avoid duplicates.Multiple steps in the same workflow can duplicate the same source id.
- sources: [...(bookingFields[attendeePhoneNumberIndex].sources || []), ...phoneNumberSources], + sources: Array.from( + new Map( + [...(bookingFields[attendeePhoneNumberIndex].sources || []), ...phoneNumberSources].map((s) => [s.id, s]) + ).values() + ),I can add a unit test that asserts unique source ids on attendeePhoneNumber.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (3)
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx(2 hunks)packages/features/bookings/lib/getBookingFields.ts(2 hunks)packages/features/ee/workflows/lib/reminders/aiPhoneCallManager.ts(0 hunks)
💤 Files with no reviewable changes (1)
- packages/features/ee/workflows/lib/reminders/aiPhoneCallManager.ts
🧰 Additional context used
📓 Path-based instructions (4)
**/*.tsx
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Always use
t()for text localization in frontend code; direct text embedding should trigger a warning
Files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js
.utc()in hot paths like loops
Files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsxpackages/features/bookings/lib/getBookingFields.ts
**/*.{ts,tsx,js,jsx}
⚙️ CodeRabbit configuration file
Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.
Files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsxpackages/features/bookings/lib/getBookingFields.ts
**/*.ts
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
**/*.ts: For Prisma queries, only select data you need; never useinclude, always useselect
Ensure thecredential.keyfield is never returned from tRPC endpoints or APIs
Files:
packages/features/bookings/lib/getBookingFields.ts
🧠 Learnings (8)
📓 Common learnings
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts:212-220
Timestamp: 2025-08-08T10:26:13.362Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts should include the phone number in client-facing HttpError messages (e.g., in updatePhoneNumber/getPhoneNumber catch blocks). Do not suggest redacting the phone number from these errors unless requirements change (per maintainer: Udit-takkar).
Learnt from: Udit-takkar
PR: calcom/cal.com#22995
File: packages/trpc/server/routers/viewer/workflows/update.handler.ts:738-763
Timestamp: 2025-08-15T00:07:30.058Z
Learning: In calcom/cal.com workflows, Cal AI phone call actions (CAL_AI_PHONE_CALL) intentionally always require the phone number field when the action is present, unlike SMS/WhatsApp actions which respect the step.numberRequired flag. This is the intended behavior per maintainer Udit-takkar in PR #22995.
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/interfaces/AIPhoneService.interface.ts:118-143
Timestamp: 2025-08-08T09:29:11.681Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/interfaces/AIPhoneService.interface.ts (TypeScript), the AIPhoneServiceAgentListItem is required to include user.email in listAgents responses (per maintainer Udit-takkar). Future reviews should not flag this as unnecessary PII unless requirements change.
📚 Learning: 2025-08-27T13:32:46.887Z
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsxpackages/features/bookings/lib/getBookingFields.ts
📚 Learning: 2025-07-15T12:59:34.389Z
Learnt from: eunjae-lee
PR: calcom/cal.com#22106
File: packages/features/insights/components/FailedBookingsByField.tsx:65-71
Timestamp: 2025-07-15T12:59:34.389Z
Learning: In the FailedBookingsByField component (packages/features/insights/components/FailedBookingsByField.tsx), although routingFormId is typed as optional in useInsightsParameters, the system automatically enforces a routing form filter, so routingFormId is always present in practice. This means the data always contains only one entry, making the single-entry destructuring approach safe.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
📚 Learning: 2025-08-21T12:28:42.018Z
Learnt from: alishaz-polymath
PR: calcom/cal.com#23247
File: packages/features/webhooks/lib/factory/WebhookPayloadFactory.ts:274-282
Timestamp: 2025-08-21T12:28:42.018Z
Learning: In webhook DTOs in packages/features/webhooks/lib/dto/types.ts, the booking fields are restricted structures containing only specific fields (id, eventTypeId, userId, and sometimes additional fields like startTime or smsReminderNumber) rather than full database booking objects, so there are no security or PII leakage concerns when using these booking objects in webhook payloads.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
📚 Learning: 2025-08-29T22:57:30.382Z
Learnt from: bandhan-majumder
PR: calcom/cal.com#23454
File: packages/features/form-builder/FormBuilder.tsx:11-11
Timestamp: 2025-08-29T22:57:30.382Z
Learning: FormBuilder.tsx in packages/features/form-builder/ does not have "use client" directive at the top despite using client-side React hooks and event handlers, which suggests it should be a client component.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
📚 Learning: 2025-08-08T10:26:13.362Z
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts:212-220
Timestamp: 2025-08-08T10:26:13.362Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts should include the phone number in client-facing HttpError messages (e.g., in updatePhoneNumber/getPhoneNumber catch blocks). Do not suggest redacting the phone number from these errors unless requirements change (per maintainer: Udit-takkar).
Applied to files:
packages/features/bookings/lib/getBookingFields.ts
📚 Learning: 2025-08-08T09:29:11.681Z
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/interfaces/AIPhoneService.interface.ts:118-143
Timestamp: 2025-08-08T09:29:11.681Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/interfaces/AIPhoneService.interface.ts (TypeScript), the AIPhoneServiceAgentListItem is required to include user.email in listAgents responses (per maintainer Udit-takkar). Future reviews should not flag this as unnecessary PII unless requirements change.
Applied to files:
packages/features/bookings/lib/getBookingFields.ts
📚 Learning: 2025-08-15T00:07:30.058Z
Learnt from: Udit-takkar
PR: calcom/cal.com#22995
File: packages/trpc/server/routers/viewer/workflows/update.handler.ts:738-763
Timestamp: 2025-08-15T00:07:30.058Z
Learning: In calcom/cal.com workflows, Cal AI phone call actions (CAL_AI_PHONE_CALL) intentionally always require the phone number field when the action is present, unlike SMS/WhatsApp actions which respect the step.numberRequired flag. This is the intended behavior per maintainer Udit-takkar in PR #22995.
Applied to files:
packages/features/bookings/lib/getBookingFields.ts
🧬 Code graph analysis (1)
packages/features/bookings/lib/getBookingFields.ts (1)
packages/features/bookings/lib/SystemField.ts (2)
SMS_REMINDER_NUMBER_FIELD(16-16)CAL_AI_AGENT_PHONE_NUMBER_FIELD(17-17)
⏰ Context from checks skipped due to timeout of 180000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
- GitHub Check: Install dependencies / Yarn install & cache
- GitHub Check: Codacy Static Code Analysis
🔇 Additional comments (4)
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx (2)
55-56: rescheduleReason stays editable — good.Matches intent to allow editing reason during reschedule while other system fields remain read-only.
58-63: Enums verified as canonical
SystemField.Enum.smsReminderNumber and SystemField.Enum.aiAgentCallPhoneNumber match the constants inpackages/features/bookings/lib/SystemField.ts.packages/features/bookings/lib/getBookingFields.ts (2)
148-150: Phone sources accumulator — ok.Initialization and flag use look good.
374-396: Surface attendeePhoneNumber when legacy fields exist — good.Ensures single visible phone input in mixed/legacy configs.
| // Check for AI agent call workflows that require phone numbers | ||
| if (step.action === "CAL_AI_PHONE_CALL") { | ||
| const workflowId = workflow.workflow.id; | ||
| phoneNumberSources.push( | ||
| getAIAgentCallPhoneNumberSource({ | ||
| workflowId, | ||
| isAIAgentCallPhoneNumberRequired: !!step.numberRequired, | ||
| }) | ||
| ); | ||
| if (step.numberRequired) { | ||
| isPhoneNumberRequired = true; | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CAL_AI_PHONE_CALL must always require a phone number.
Per workflows behavior, AI phone calls require phone regardless of step.numberRequired. Current code makes it conditional.
Apply:
if (step.action === "CAL_AI_PHONE_CALL") {
const workflowId = workflow.workflow.id;
phoneNumberSources.push(
getAIAgentCallPhoneNumberSource({
workflowId,
- isAIAgentCallPhoneNumberRequired: !!step.numberRequired,
+ isAIAgentCallPhoneNumberRequired: true,
})
);
- if (step.numberRequired) {
- isPhoneNumberRequired = true;
- }
+ isPhoneNumberRequired = true;
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| // Check for AI agent call workflows that require phone numbers | |
| if (step.action === "CAL_AI_PHONE_CALL") { | |
| const workflowId = workflow.workflow.id; | |
| phoneNumberSources.push( | |
| getAIAgentCallPhoneNumberSource({ | |
| workflowId, | |
| isAIAgentCallPhoneNumberRequired: !!step.numberRequired, | |
| }) | |
| ); | |
| if (step.numberRequired) { | |
| isPhoneNumberRequired = true; | |
| } | |
| // Check for AI agent call workflows that require phone numbers | |
| if (step.action === "CAL_AI_PHONE_CALL") { | |
| const workflowId = workflow.workflow.id; | |
| phoneNumberSources.push( | |
| getAIAgentCallPhoneNumberSource({ | |
| workflowId, | |
| isAIAgentCallPhoneNumberRequired: true, | |
| }) | |
| ); | |
| isPhoneNumberRequired = true; | |
| } |
🤖 Prompt for AI Agents
In packages/features/bookings/lib/getBookingFields.ts around lines 165 to 176,
the code treats CAL_AI_PHONE_CALL as requiring a phone only when
step.numberRequired is true; change it so AI phone call steps always require a
phone: when step.action === "CAL_AI_PHONE_CALL" always push
getAIAgentCallPhoneNumberSource with isAIAgentCallPhoneNumberRequired set to
true (or !!true) and set isPhoneNumberRequired = true unconditionally (remove
the conditional check on step.numberRequired).
kart1ka
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments. We are going to need tests to verify these changes.
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
Show resolved
Hide resolved
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
Show resolved
Hide resolved
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
Show resolved
Hide resolved
|
@kart1ka, can you have a look at this PR? |
Devanshusharma2005
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments.
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx(2 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.tsx
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Always use
t()for text localization in frontend code; direct text embedding should trigger a warning
Files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
**/*.{ts,tsx}
📄 CodeRabbit inference engine (.cursor/rules/review.mdc)
Flag excessive Day.js use in performance-critical code; prefer native Date or Day.js
.utc()in hot paths like loops
Files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
**/*.{ts,tsx,js,jsx}
⚙️ CodeRabbit configuration file
Flag default exports and encourage named exports. Named exports provide better tree-shaking, easier refactoring, and clearer imports. Exempt main components like pages, layouts, and components that serve as the primary export of a module.
Files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
🧠 Learnings (4)
📓 Common learnings
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.
Learnt from: Udit-takkar
PR: calcom/cal.com#22919
File: packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts:212-220
Timestamp: 2025-08-08T10:26:13.362Z
Learning: In calcom/cal.com PR #22919, packages/features/calAIPhone/providers/retellAI/services/PhoneNumberService.ts should include the phone number in client-facing HttpError messages (e.g., in updatePhoneNumber/getPhoneNumber catch blocks). Do not suggest redacting the phone number from these errors unless requirements change (per maintainer: Udit-takkar).
📚 Learning: 2025-08-27T13:32:46.887Z
Learnt from: supalarry
PR: calcom/cal.com#23364
File: apps/api/v2/src/ee/event-types/event-types_2024_06_14/transformers/internal-to-api/internal-to-api.spec.ts:295-296
Timestamp: 2025-08-27T13:32:46.887Z
Learning: In calcom/cal.com, when transforming booking fields from internal to API format, tests in organizations-event-types.e2e-spec.ts already expect name field label and placeholder to be empty strings ("") rather than undefined. PR changes that set these to explicit empty strings are typically fixing implementation to match existing test expectations rather than breaking changes.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
📚 Learning: 2025-07-15T12:59:34.389Z
Learnt from: eunjae-lee
PR: calcom/cal.com#22106
File: packages/features/insights/components/FailedBookingsByField.tsx:65-71
Timestamp: 2025-07-15T12:59:34.389Z
Learning: In the FailedBookingsByField component (packages/features/insights/components/FailedBookingsByField.tsx), although routingFormId is typed as optional in useInsightsParameters, the system automatically enforces a routing form filter, so routingFormId is always present in practice. This means the data always contains only one entry, making the single-entry destructuring approach safe.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
📚 Learning: 2025-08-29T22:57:30.382Z
Learnt from: bandhan-majumder
PR: calcom/cal.com#23454
File: packages/features/form-builder/FormBuilder.tsx:11-11
Timestamp: 2025-08-29T22:57:30.382Z
Learning: FormBuilder.tsx in packages/features/form-builder/ does not have "use client" directive at the top despite using client-side React hooks and event handlers, which suggests it should be a client component.
Applied to files:
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
🔇 Additional comments (1)
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx (1)
100-100: LGTM on field views check.Straightforward alias; behavior unchanged.
packages/features/bookings/Booker/components/BookEventForm/BookingFields.tsx
Outdated
Show resolved
Hide resolved
|
This PR is being marked as stale due to inactivity. |
|
@anikdhabal, can you review this PR? |
Pallava-Joshi
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hey can you please fix the merge conflicts here. marking it draft until.
|
@cubic-dev-ai leave a review. |
@Pallava-Joshi I've started the AI code review. It'll take a few minutes to complete. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 issues found across 4 files
Prompt for AI agents (all 2 issues)
Check if these issues are valid — if so, understand the root cause of each and fix them.
<file name=".eslintrc.js">
<violation number="1" location=".eslintrc.js:99">
P0: Duplicate object keys: the new `group` and `message` properties are overwritten by the existing ones below. This pattern should be a separate object in the `patterns` array. The tRPC restriction will have no effect.</violation>
</file>
<file name="packages/features/bookings/lib/getBookingFields.ts">
<violation number="1" location="packages/features/bookings/lib/getBookingFields.ts:368">
P2: The `required` property could incorrectly override a user's configuration. If the user has set `attendeePhoneNumber` to required, but no workflow step has `numberRequired: true`, this would reset it to `false`. Consider preserving the existing setting like in the consolidation block below: `required: bookingFields[attendeePhoneNumberIndex].required || isPhoneNumberRequired`.</violation>
</file>
Reply to cubic to teach it or ask questions. Re-run a review with @cubic-dev-ai review this PR
Devin AI is completing this stale PRThis PR by @hemantmm has been marked as stale. A Devin session has been created to complete the remaining work. Devin will review the PR, address any feedback, and push updates to complete this PR. |
Co-Authored-By: unknown <>
- Skip legacy phone fields (smsReminderNumber, aiAgentCallPhoneNumber) in BookingFields.tsx - Preserve user's required setting when updating attendeePhoneNumber field - Apply lint fixes for import organization Co-authored-by: hemantmm <[email protected]> Co-Authored-By: unknown <>
Completed PR UpdatesI've completed the work on this PR to address the review feedback and resolve merge conflicts. Here's a summary of the changes: Changes Made
Files Modified
The PR is now ready for review. The core functionality remains the same as @hemantmm's original implementation - consolidating phone inputs to show only |
closes: #23722
What does this PR do?
This PR consolidates phone input handling by using a single
attendeePhoneNumberfield instead of separate fields for SMS reminder number and AI agent call phone number. Users will now see only one phone input field on booking forms.Key Changes:
smsReminderNumber,aiAgentCallPhoneNumber) inBookingFields.tsxgetBookingFields.tsto surface a singleattendeePhoneNumberfieldrequiredsetting when updating theattendeePhoneNumberfieldVisual Demo (For contributors especially)
Video Demo (if applicable):
Before:
Screen.Recording.2025-09-10.at.10.50.54.mov
After:
Screen.Recording.2025-09-10.at.10.47.21.mov
Updates since last revision
Completed by Devin to address review feedback and resolve merge conflicts:
.eslintrc.jswas deleted andBookingFields.tsxwas moved toapps/web/modules/bookings/components/BookEventForm/requiredproperty issue - Changedrequired: isPhoneNumberRequiredtorequired: bookingFields[attendeePhoneNumberIndex].required || isPhoneNumberRequiredto preserve user's existing configuration (addresses cubic-dev-ai review feedback)Mandatory Tasks (DO NOT REMOVE)
How should this be tested?
attendeePhoneNumber) is displayed instead of multiple phone fieldsHuman Review Checklist
apps/web/modules/bookings/components/BookEventForm/BookingFields.tsxis correctrequiredproperty preservation logic inpackages/features/bookings/lib/getBookingFields.tsworks as expectedChecklist
Link to Devin run: https://app.devin.ai/sessions/598091a8c87e4189b79221e96219f8f9
Requested by: unknown ()
Original author: @hemantmm