Skip to content

feat(companion): booking actions ios ui update - #26307

Merged
volnei merged 23 commits into
mainfrom
devin/native-ios-ui-components-1767091492
Jan 1, 2026
Merged

volnei merged 23 commits into
mainfrom
devin/native-ios-ui-components-1767091492

Conversation

@dhairyashiil

@dhairyashiil dhairyashiil commented Dec 30, 2025 •

Copy link
Copy Markdown
Contributor
Screen.Recording.2026-01-02.at.3.08.37.AM.mov

and

Screen.Recording.2026-01-02.at.2.30.22.AM.mov

and

Screenshot 2026-01-02 at 2 30 03 AM

- Add LogoutConfirmModal.ios.tsx using native Alert.alert()
- Add BookingModals.ios.tsx using native Alert.prompt() for reject modal
- Add RescheduleScreen.ios.tsx using @expo/ui/swift-ui DateTimePicker

These iOS-specific implementations provide native glass UI experience
instead of custom React Native modals.
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

- Change import from DateTimePicker to DatePicker
- Use onDateChange instead of onDateSelected
- Use displayedComponents as array instead of string
- Use selection instead of initialDate
@vercel

vercel Bot commented Dec 30, 2025 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

3 Skipped Deployments
Project Deployment Review Updated (UTC)
cal Ignored Ignored Jan 1, 2026 9:44pm
cal-companion Ignored Ignored Preview Jan 1, 2026 9:44pm
cal-eu Ignored Ignored Jan 1, 2026 9:44pm

- Use @expo/ui/jetpack-compose DateTimePicker for native Android date/time selection
- Use variant='picker' with showVariantToggle=false for consistent UI
- Use displayedComponents='date' for date picker and 'hourAndMinute' for time picker
- Use is24Hour=true for 24-hour time format
@devin-ai-integration devin-ai-integration Bot changed the title feat(companion): add native iOS UI components for modals and pickers feat(companion): add native iOS and Android UI components for modals and pickers Dec 30, 2025
@dhairyashiil
dhairyashiil marked this pull request as ready for review December 30, 2025 12:11
@graphite-app graphite-app Bot added the community Created by Linear-GitHub Sync label Dec 30, 2025

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 4 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="companion/components/booking-modals/BookingModals.ios.tsx">

<violation number="1" location="companion/components/booking-modals/BookingModals.ios.tsx:123">
P2: Race condition: `setTimeout(..., 0)` after `onRejectReasonChange(reason)` does not guarantee the state update has been processed before `onRejectSubmit()` runs. React batches state updates asynchronously. The reject reason may be lost when submitting.

Consider modifying `onRejectSubmit` to accept the reason directly, or storing the reason in a ref that `onRejectSubmit` can read synchronously.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

…s for RescheduleScreen

- Add RescheduleScreen.android.tsx using @react-native-community/datetimepicker for native Android date/time pickers
- Update RescheduleScreen.tsx to use native HTML date/time inputs on web/extension
- Install @react-native-community/datetimepicker package
@devin-ai-integration
devin-ai-integration Bot requested a review from a team as a code owner December 31, 2025 11:04

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 4 files (changes from recent commits).

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="companion/components/screens/RescheduleScreen.tsx">

<violation number="1" location="companion/components/screens/RescheduleScreen.tsx:192">
P1: Parsing &quot;YYYY-MM-DD&quot; with `new Date()` interprets it as UTC midnight, causing the selected date to shift to the previous day in timezones west of UTC. Parse the date components explicitly to create a local date instead.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files (changes from recent commits).

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="companion/components/screens/RescheduleScreen.android.tsx">

<violation number="1" location="companion/components/screens/RescheduleScreen.android.tsx:140">
P2: The date picker no longer prevents selection of past dates. The removed `@react-native-community/datetimepicker` had `minimumDate={new Date()}` to prevent past date selection at the UI level. Users can now select invalid past dates and only see an error after tapping submit. Consider adding a `minimumDate` prop if supported by `@expo/ui/jetpack-compose` DateTimePicker, or document this as an intentional UX change.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

…eets (#26366)

* feat(companion): add native iOS bottom sheet for meeting session details

* move file to correct location, remove bg and use glass ui bg

* feat(companion): convert booking action pages to iOS bottom sheets

- Add iOS-specific bottom sheet implementations for:
  - edit-location (detents: 0.5, 0.7)
  - mark-no-show (detents: 0.4, 0.6)
  - view-recordings (detents: 0.7, 0.9)
  - add-guests (detents: 0.6, 0.8)
  - reschedule (detents: 0.8, 0.95)
- Move route files from (tabs)/(bookings)/ to root app/ level
- Register screens in root _layout.tsx with platform-specific options
- Update navigation paths from nested to root level
- Remove migrated screens from bookings _layout.tsx

* updated booking actions pages to use glass ui bottom sheet

* new ui for booking actions ready

* add biome file

* fix event type detail react compiler issue

* update button style

* fix black flash ui
@graphite-app
graphite-app Bot requested a review from a team January 1, 2026 20:36
@dhairyashiil
dhairyashiil removed the request for review from a team January 1, 2026 20:37

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file (changes from recent commits).

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="companion/components/screens/AvailabilityDetailScreen.tsx">

<violation number="1" location="companion/components/screens/AvailabilityDetailScreen.tsx:223">
P2: Removing `dayNameToNumber` from the dependency array violates React&#39;s exhaustive-deps rule since it&#39;s used inside the callback. Since `dayNameToNumber` is a static constant, the proper fix is to move it to module scope (alongside `DAYS` and `DAY_ABBREVIATIONS`) rather than removing it from dependencies while keeping it inside the component.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@dhairyashiil dhairyashiil changed the title feat(companion): add native date time pickers iOS and custom for android feat(companion): booking actions ios ui update Jan 1, 2026
@volnei volnei added the run-ci Approve CI to run for external contributors label Jan 1, 2026
@volnei
volnei enabled auto-merge (squash) January 1, 2026 21:44

This branch was successfully deployed

1 active deployment
Preview – dev — 26a0bb3e Deployed Jan 1, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

community Created by Linear-GitHub Sync ready-for-e2e run-ci Approve CI to run for external contributors size/XXL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants