Files
cal.diy/companion/.env.example
T
Dhairyashil Shinde 69a857ad98 feat(companion): Multi-browser extension support (Chrome, Firefox, Safari, Edge, Brave) and fix text node errors (#26063)
* feat(companion): add multi-browser OAuth support for extension

- Add browser-specific OAuth client ID and redirect URI configuration
- Support Chrome, Firefox, Safari, Edge, and Brave browsers
- Add build scripts for each browser target (ext:build-{browser})
- Fix Brave Shields compatibility for production builds
- Add EXTENSION_SETUP.md documentation

BREAKING CHANGE: None - backward compatible with existing Chrome config

* fix(companion): replace && conditional rendering with ternary operators

Replace all `{condition && (<Component />)}` patterns with explicit
`{condition ? (<Component />) : null}` syntax across the companion app.

This fixes "Unexpected text node: . A text node cannot be a child of
a <View>" errors that occur with react-native-css-interop when using
&& conditional rendering in React Native web builds.

Files updated:
- app/event-type-detail.tsx (16)
- app/booking-detail.tsx (10)
- app/(tabs)/bookings.tsx (8)
- app/(tabs)/availability.tsx (6)
- app/availability-detail.tsx (5)
- app/(tabs)/(event-types)/index.tsx (4)
- components/event-type-detail/tabs/LimitsTab.tsx (9)
- components/event-type-detail/tabs/BasicsTab.tsx (3)
- components/event-type-detail/tabs/AdvancedTab.tsx (3)
- components/event-type-detail/tabs/RecurringTab.tsx (1)
- components/event-type-detail/tabs/AvailabilityTab.tsx (1)
- components/event-type-list-item/EventTypeListItem.ios.tsx (3)
- components/BookingActionsModal.tsx (2)
- components/Tooltip.tsx (1)
- components/LocationsList.tsx (1)
- components/Header.tsx (1)
- components/EmptyScreen.tsx (1)

* correct command for edge

* dont break ci

* deslop ai
2025-12-19 23:50:20 +05:30

64 lines
3.2 KiB
Bash

# Cal.com OAuth Configuration
EXPO_PUBLIC_CALCOM_OAUTH_CLIENT_ID=your_oauth_client_id_here
EXPO_PUBLIC_CALCOM_OAUTH_REDIRECT_URI=your_oauth_redirect_uri_here
# =============================================================================
# OAUTH REDIRECT URL FORMATS BY BROWSER
# =============================================================================
#
# | Browser | Redirect URL Format | Notes |
# |---------|------------------------------------------------------------------|----------------------------------------------------|
# | Chrome | https://<id>.chromiumapp.org/oauth/callback | Get ID from `chrome://extensions` |
# | Brave | https://<id>.chromiumapp.org/oauth/callback | Same extension package as Chrome |
# | Edge | https://<id>.chromiumapp.org/oauth/callback | Different ID from Chrome |
# | Firefox | https://<uuid>.extensions.allizom.org/oauth/callback | UUID from `browser.identity.getRedirectURL()` |
# | Safari | https://<team>.<bundle>.appextension/oauth/callback | Check Xcode project configuration |
#
# =============================================================================
# =============================================================================
# FIREFOX OAUTH CONFIG
# =============================================================================
EXPO_PUBLIC_CALCOM_OAUTH_CLIENT_ID_FIREFOX=
EXPO_PUBLIC_CALCOM_OAUTH_REDIRECT_URI_FIREFOX=
# =============================================================================
# SAFARI OAUTH CONFIG
# =============================================================================
EXPO_PUBLIC_CALCOM_OAUTH_CLIENT_ID_SAFARI=
EXPO_PUBLIC_CALCOM_OAUTH_REDIRECT_URI_SAFARI=
# =============================================================================
# EDGE OAUTH CONFIG
# =============================================================================
EXPO_PUBLIC_CALCOM_OAUTH_CLIENT_ID_EDGE=
EXPO_PUBLIC_CALCOM_OAUTH_REDIRECT_URI_EDGE=
# ===========================================
# CACHE CONFIGURATION (all values in MINUTES)
# ===========================================
# Default cache stale time for all queries (default: 5 minutes)
EXPO_PUBLIC_CACHE_STALE_TIME_MINUTES=5
# Garbage collection time - how long to keep unused cache (default: 1440 minutes - 24 hours)
EXPO_PUBLIC_CACHE_GC_TIME_MINUTES=1440
# Bookings cache stale time (default: 5 minutes)
# After this time, data is considered stale and will refetch in background
EXPO_PUBLIC_BOOKINGS_CACHE_STALE_TIME_MINUTES=5
# Event Types cache stale time (default: -1 = never stale)
# -1 means data only refreshes on mutations (create/update/delete) or manual pull-to-refresh
EXPO_PUBLIC_EVENT_TYPES_CACHE_STALE_TIME_MINUTES=-1
# Schedules (Availability) cache stale time (default: -1 = never stale)
EXPO_PUBLIC_SCHEDULES_CACHE_STALE_TIME_MINUTES=-1
# User Profile cache stale time (default: -1 = never stale)
EXPO_PUBLIC_USER_PROFILE_CACHE_STALE_TIME_MINUTES=-1
# required for dev/local
EXPO_PUBLIC_COMPANION_DEV_URL=http://localhost:8081