Skip to content

fix: add comprehensive dark mode support across mobile app#57

Merged
romitg2 merged 2 commits intomainfrom
devin/1774032581-fix-dark-mode-gaps
Mar 21, 2026
Merged

fix: add comprehensive dark mode support across mobile app#57
romitg2 merged 2 commits intomainfrom
devin/1774032581-fix-dark-mode-gaps

Conversation

@dhairyashiil
Copy link
Member

@dhairyashiil dhairyashiil commented Mar 20, 2026

Screen.Recording.2026-03-21.at.12.33.16.AM.mov

Summary

Adds dark mode support to several mobile app components that were missing it:

  1. DateTimePicker plugin (app.json): Added "dark" color keys alongside existing "light" keys for the Android native date/time picker. Requires npx expo prebuild to take effect.
  2. Dynamic NativeWind classes (5 screens): Replaced bg-[${variable}] template literals — which NativeWind can't statically resolve — with inline style={{ backgroundColor }} props. Follows the existing pattern in EditAvailabilityOverrideScreen.ios.tsx.
  3. BookingDetailScreen cancel dialog: Added dark: Tailwind variants to the web modal and Android AlertDialog TextInput, plus theme-aware placeholderTextColor.
  4. AvailabilityListScreen create/delete dialogs: Added dark: variants to Android AlertDialog TextInput and theme-aware placeholder colors. Inverted primary button colors for dark mode (white bg + black text).
  5. GlobalToast: Added useColorScheme() hook and dark-mode style overrides for container, title, message, and icon colors.

Review & Testing Checklist for Human

  • Verify the inverted button pattern (white bg + black text in dark mode) matches the intended design for primary action buttons in AvailabilityListScreen (Continue + Delete buttons) and BookingDetailScreen (Cancel Event button). This is a design decision that affects multiple dialogs.
  • Test all 5 Fix 2 screens on both light and dark mode to confirm backgrounds resolve correctly — especially AddGuestsScreen which uses a local colors object rather than direct theme values.
  • Run npx expo prebuild and test the Android DateTimePicker in dark mode to verify the plugin config produces correct Material theme colors.
  • Spot-check that GlobalToast renders correctly on web in both themes.

Recommended test plan: Toggle device/simulator between light and dark mode and navigate through: Availability list → create schedule dialog → delete schedule dialog, Booking detail → cancel dialog, View recordings, Meeting session details, Add guests, and trigger a toast notification.

Notes

  • All hardcoded hex colors (#171717, #262626, #4D4D4D, #A3A3A3, etc.) are consistent with values already used in existing dark-mode-aware components in the codebase.
  • The app.json DateTimePicker dark values are simple light↔dark inversions. A pass against Material Design theming guidelines may be warranted for polish.
  • NativeWind dark mode relies on darkMode: "media" in tailwind.config.js (system preference detection) — confirmed this is already configured.
  • These changes are purely additive for dark mode; light mode rendering is unchanged.
  • Lint (bun run lint:all) and typecheck (bun run typecheck) both pass cleanly.

Link to Devin session: https://app.devin.ai/sessions/9f742190b8de45f7996180db82da61f6
Requested by: @dhairyashiil

- Add dark theme colors to DateTimePicker Android plugin config (app.json)
- Replace dynamic NativeWind classes with inline styles in 5 screen components
- Add dark: variants to BookingDetailScreen cancel dialog (web + Android)
- Add dark: variants to AvailabilityListScreen create dialog (Android AlertDialog)
- Add dark mode support to GlobalToast component (web)
@devin-ai-integration
Copy link
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

Prevents white-on-white text when delete dialog button inverts to white
background in dark mode.
@vercel
Copy link

vercel bot commented Mar 20, 2026

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
cal-companion-chat Ignored Ignored Mar 20, 2026 6:55pm

Request Review

@dhairyashiil dhairyashiil marked this pull request as ready for review March 20, 2026 19:03
Copy link
Contributor

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

Choose a reason for hiding this comment

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

No issues found across 9 files

@romitg2 romitg2 merged commit c10ed68 into main Mar 21, 2026
15 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants