* fix(@cal.com/web): update debounce logic to work correctly and not show non-premium usernames as premium
- removes redundant useMemo hook from UsernameTextfield.tsx & PremiumTextField.tsx
- cancles the debounceAPICall on every unmount of UsernameTextfield.tsx & PremiumTextfield.tsx via useEffect cleanup function
Fixes#15628
* fix(@cal.com/web): update the debounce logic to use the pre-existing useDebounce hook
- update the debounce logic in UsernameTextField.tsx & PremiumTextField.tsx to use the pre-existing useDebounce hook instead of loadsh debounce
- update the debounce delay to 600ms to be consistent with the signup.tsx behavior
Fixes#15628
* fix: signup debounce not working properly
---------
Co-authored-by: Amit91848 <samit91848@gmail.com>
* feat: go to Assignment tab after creation and warn if existing without assigning
* Update AssignmentWarningDialog.tsx
* fix: some changes
* fix: some updates
* Update EventTeamTab.tsx
* update
* update
* update test
* some fixes
* refactor one test and update
* Update managed-event-types.e2e.ts
---------
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
* chore: Remove deprecated logo/avatar/away fields
* Use right variables for accounts-step-card
* Remove more deprecated logo/avatar usage
* Dont drop the fields until all usages are gone
* Remove the avatar/logo drops for staggered release
* fix: Typescript blindspot (unvalidated include fields)
* fix: Further updates (mostly to API) typescript missed
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Bailey Pumfleet <bailey@pumfleet.co.uk>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
* added dropdown for no-shows in past bookings
* added layout
* nit
* todo comment: figure out how to close dropdown
* more todo comments
* Adds TRPC route among other WIP
* functional update
* fixes type err
* fix type err
* fix: styles
* strikethrough in email
* NITs
* removed stale comment
* add tests
* err comment
---------
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: sean-brydon <sean@cal.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
* feat(appStore): add isOAuth config
* refactor(appStore): EventTypeAppSettngsInterface
* refactor(qr_code): split EventTypeAppCardInterface and EventTypeAppSettingsInterface
* feat(appStore): redirect to onboarding for stripe and basecam
* fix(ui/ScrollableArea): overflow indicator not working
* feat(apps): new install app flow
* fix(configureStep): get disabled props for settings
* fix: getAppInstallsBySlug now use teamIds
* chore: Alby to AppSettingsInterface
* chore: Giphy to appsettings interface
* chore: GTM migration
* chore: GT4 - migration
* chore: fathom migration
* chore: paypal
* feat: basecamp migration
* feat: metapixel migration
* feat:plausable
* feat:stripe
* fix merge issues
* fix merge issues in new app install flow steps
* wip: callback to onboarding
* fix: imports
* fix: more imports
* feat: use redirect to onboarding on install flow
* fix: redirect to event-type after oauth flow
* When clicking on install new app button, only redirect to the new app install flow if it is an oAuth app or an app that extends the EventType feature in it's config
* code refactor, skip event-type step
* removed extra consoles
* so that no one can change the eventTypeId in url
* theme support enabled
* only pass eventTypeId instead of whole evetType obj to OmniInstallAppButton
* fix: clicking on event-type gives error and redirects to /apps
* saved appOnboardingRedirectUrl to OAuth State
* fix: a user having no team breaks the onboarding flow
* add optional chaining to appMetadata.extendsFeature and appMetadata.isOAuth;
* encode appOnboardingRedirectUrl
* fix: dark theme ui issues
* skip configure step if no-event types
if user/team does not have event-type then skip configure step and goto apps/installed/[category]
* exclude calendars from apps- onboarding flow
* Update getAppOnboardingRedirectUrl.ts
* fix: On configure step, inputs aren't showing errors
* change route from `apps/onboarding` to `apps/installation`
* fix: flow not correctly working for teams
* should only allow team ADMIN or OWER to install an app to team
* Prevent two payment apps to be enabled
* removed loading state
* Fix type error
* undo new-app-flow from OmniInstallAppButton
* remove OAuth Step, handle step numbering
* fix: redirect url
* getAppOnboardingRedirectUrl refactor
* for debugging
* Revert "for debugging"
This reverts commit b9362c1a8f47f2280e684c213d7ec08d04a8ac4c.
* fix: added toaster
* feat: added support to select multiple events (almost)
* hide button
* Move inner form outside outer form using portal
Due to limitations with nested forms in React Hook Form, moved the inner form outside the outer form using a portal to ensure proper form handling.
* submit buttons refs madness
* removed configure step
we had to use query params to manage selected event-types, between routes which was causing 2 issues:
* each time we selected or unselected an event the whole page was reloaded including getserversideprops being called again and again
* the form was reloaded causing more issues
* removed extra unwanted code
* small fix
* fix: type error
* fix: types
* implemented suggested changes
* removed step footer
* fixed error.message
* removed commented styles
* removed step footer
* fix: Display team event types instead of user's on event types step when team selected
* fix: typo
* removed shouldLockDisableProps
* refactor setUpdatedEventTypesStatus, fix type
* removed extra code
* can't delete while saving
* added translations
* fix: loading in select account step, fix handle onSelect params type
* Fix typo
* feat: add skip button to event-types step
* use set-up-later button in tests
* added skip button to configure step as well
* feat: add test for analytics apps using the new app install flow
* feat: add test for stripe 1
* feat: add test for stripe 2
* Fix: Redirect only those apps that extend 'EventType' to the new app install flow (#14527)
* fix: type errors
* fix: failing tests
* fix: tests
* fix test flakiness
* better naming and code refactor for analytics apps tests
* run tests parallelly
* removed network idle, giving error
* another shot at test flakiness
* Fix: can't install apps without team selector dropdown on main app store page.
* fix: test flakiness
* fix: account select loading issue
* removed getPaymentCredential (unused)
* fix: only redirect after the app has been added to all the event-types
* remove overflowIndicatorStyles
* fixed failing test
* fix: exclude org team events
* undo some random merge changes
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: sean-brydon <sean@cal.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
* wip
* wip
* wip
* Add tests
* Update getSchedule.test.ts
* Update types.ts
* Self review fixes
* Update text
* PR feedback from Carina
* Use utcoffset for range as well
* Remove logging from the function that runs on every timeslot
* Add one more test
* Show x days instead of x+1 days for both ROLLING and ROLLING_WINDOW
* refactor tests
* Move bookingScenario imports to the top as they import prismock mock that has to be imported very early
* More reordering of imports
* Fix accidental min update at wrong place
* Handle legacy value of zero for periodDays
* Range fix
* Fix isDateOutOfBound not being checked properly during booking. Also added a test for the case
* Fix duplicate element, how the hell it reached there
* Use today plus x days for ROLLING periodType
* Add disabled for Checkbox as well
* Revert logger.ts
* Formatting
Signed-off-by: zomars <zomars@me.com>
* Fix ordering of imports that is causing tests failure
---------
Signed-off-by: zomars <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
## What does this PR do?
<!-- Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. -->
- Fixes#14977
<!-- Please provide a loom video for visual changes to speed up reviews
Loom Video: https://www.loom.com/
-->
## Mandatory Tasks (DO NOT REMOVE)
- [ ] I have self-reviewed the code (A decent size PR without self-review might be rejected)
- [ ] I have added a Docs issue [here](https://github.com/calcom/docs/issues/new) if this PR makes changes that would require a [documentation change](https://docs.cal.com)
- [ ] I have added or modified automated tests that prove my fix is effective or that my feature works (PRs might be rejected if logical changes are not properly tested)
## How should this be tested?
<!-- Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. Write details that help to start the tests -->
- Are there environment variables that should be set?
- What are the minimal test data to have?
- What is expected (happy path) to have (input and output)?
- Any other important info that could help to test that PR
## Checklist
<!-- Remove bullet points below that don't apply to you -->
- I haven't read the [contributing guide](https://github.com/calcom/cal.com/blob/main/CONTRIBUTING.md)
- My code doesn't follow the style guidelines of this project
- I haven't commented my code, particularly in hard-to-understand areas
- I haven't checked if my changes generate no new warnings
* add rewrites for platform dashboard
* fix loading checking
* add checks
* dont display banner for platform client
* custom hooks for pllatform
* add comment for better explanation
* get data from custom hook
* update returned user attributes
* get data from custom hook
* add endpoint to fetch managed user from client id
* update typings
* minor tweaks
* custom hook to fetch managed users from client id
* add translations for platform onboarding
* add isPlatformOrg boolean to figure out which is platform and which is not
* set isPlatform hook based on data obtained from org
* add limitWidth prop to control component width
* add props to shell to make sidebar display different tabs based on if the shell isPlattform or not
* platform related pages
* fix merge conflicts
* fix merge conflicts
* platform oauth client form and card
* remove everything related to platform from organization
* update oauth client card and form
* fixup
* fix imports and remove logs
* fixup
* update redirect url
* split oauth client form into separate update and create forms
* separate forms for create and edit oauth clients
* fixup
* fixup
* dynamic routes for oauth client edit page
* fixup fixup
* fix to not show error when redirect uri is empty
* refactor create handler for org
* cleaup comments
* add custom hook to check user billing
* export managed user type
* refactor platform index page
* refactor edit and create pages
* dashboard component containing oauth client list and managed user
* common oauth client form used for create and edit form
* platform pricing helper
* platform pricing component
* fix typing and data response for billing
* use custom hook to check team billing info
* fix type checks
* upgrade conditional rendering for upgrade to org banner
* add isLoading prop to check button loading state
* pass in button handler
* add custom hook to subscribe to stripe and typings
* update typings
* fix incorrect endpoint
* pass in team id as prop
* fix type check
* update stripe success and cancel redirect url
* add and pass redirect url param to custom hook
* custom hooks for platform
* cleanup
* update imports
* fix merge conflicts
* fixup
* fixup fixup
* fixup
* merge conflicts fixup
* merge conlficts battle :(
* minor fixes
* skip admin checks for a platform client
* fix typo
* append slug with _platform for a platform user
* PR feedback
* dashboard refactor
* bring back org form to its orginal state
* add platform folder to ee
* update typings
* use new create platform form
* fixup
* fix typo and update plans
* simplifying rendering
* remove managed users endpoint since it already exists
* url for endpoint
* rename tabs
* pr feedback
* managed users endpoint
* update endpoint
* remove form
---------
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
Co-authored-by: exception <erik@erosemberg.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
* get buffer busy time from bookings outside of start and end time
* add test for buffers
* fix typo
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
* feat: add DateRangePicker.tsx and Calendar.tsx to match DS
* chore:cleanup
* tests: remove as these are duplicate tests from the library themselves
* fix: mobile sizes
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
* chore: Remove all avatar/logo references
* Updated user profile to only use avatarUrl
* fix: minor style issue
* chore: Remove redundant includeTeamLogo
* fix: Use right avatar default in event type list
* fix: placeholder avatar team profile, target
* chore: Add logoUrl/avatarUrl to JWT
* fix: Bunch of org avatar issues, fix members list
* Fix logoUrl on org pages
* More type fixes
* Hopefully final type fixes
* Another round of type fixes
* fix: UserForm ts
* fix: Handle as return types, not input types
* fix: Remove profile and add avatarUrl
* fix: notFound as const
* fix: Seeder avatarUrl params
* revert: Migration changes for easier recovery
* fix: Add explicit type to builder as avatar is now set
* Add logoUrl to unpublished entity
* Avatar test out of scope here
* fix: Use the new avatarUrl after save
* chore: Removed getOrgAvatarUrl/getTeamAvatarUrl
* fix: Update sidebar image immediately after change
* Unable to safe unnamed user, so default
* fix: Unpublished page, add organization test
* Add more tests
* add Travel Schedule modal
* UI to list schedules
* set shouldDirty
* add backend to add new travelSchedule
* implement deleting a schedule
* check if schedule is overlapping
* WIP
* fix finding overlapping travel schedule
* only use travelSchedule when default availability is used
* adjust date overrides to timezone schedule
* first version of changeTimeZone cron job
* fix tests by adding travelSchedules
* fixes for cron job api call
* improve unit tests
* add migration
* fix type error
* fix collective-scheduling test
* clean up cron job
* code clean up
* code clean up
* show timezone from travel schedule for date override
* add date override tests
* show tz on date override only in default schedule
* fix deleting old schedules
* minor fixes in cron api handler
* code clean up
* code clean up from feedback
* fix asia/kalkota comment
* fix dark mode
* fix start and end date conversion to utc
* add first unit test for travel schedules
* Fix modal render issue
* show timezone city wtihout _
* fix dark more for datepicker
* reset values after closing dialog
* remove session from middleware
* exit loop early once schedule is found
* fix type error
* add getTravelSchedules handler
* clean up DatePicker
* fix type error
* code clean up
* code clean up
* add indexes
* use deleteMany
* fix icons
---------
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
* fix: [CAL-3374] Says Number is not Verified, but it is Verified
* clearing error only when verified
* type-checks fixed
* chore: improvement
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* update typings
* update prisma to include redirect uris for booking success, cancel and reschedule
* update migrations
* add input for uris and send them back in custom hook
* display new uris
* add type for enabling emails
* update prisma schema and add migrations
* chores
* fixup
* chore: fix style, remove console log, rewrite migration
---------
Co-authored-by: Morgan Vernay <morgan@cal.com>
Co-authored-by: Morgan <33722304+ThyMinimalDev@users.noreply.github.com>
* feat(appStore): add isOAuth config
* refactor(appStore): EventTypeAppSettngsInterface
* refactor(qr_code): split EventTypeAppCardInterface and EventTypeAppSettingsInterface
* feat(appStore): redirect to onboarding for stripe and basecam
* fix(ui/ScrollableArea): overflow indicator not working
* feat(apps): new install app flow
* fix(configureStep): get disabled props for settings
* fix: getAppInstallsBySlug now use teamIds
* chore: Alby to AppSettingsInterface
* chore: Giphy to appsettings interface
* chore: GTM migration
* chore: GT4 - migration
* chore: fathom migration
* chore: paypal
* feat: basecamp migration
* feat: metapixel migration
* feat:plausable
* feat:stripe
* fix merge issues
* fix merge issues in new app install flow steps
* wip: callback to onboarding
* fix: imports
* fix: more imports
* feat: use redirect to onboarding on install flow
* feat: New app install flow 2 (#14077)
* fix: redirect to event-type after oauth flow
* When clicking on install new app button, only redirect to the new app install flow if it is an oAuth app or an app that extends the EventType feature in it's config
* code refactor, skip event-type step
* removed extra consoles
* so that no one can change the eventTypeId in url
* theme support enabled
* only pass eventTypeId instead of whole evetType obj to OmniInstallAppButton
* fix: clicking on event-type gives error and redirects to /apps
* saved appOnboardingRedirectUrl to OAuth State
* fix: a user having no team breaks the onboarding flow
* add optional chaining to appMetadata.extendsFeature and appMetadata.isOAuth;
* encode appOnboardingRedirectUrl
* fix: dark theme ui issues
* skip configure step if no-event types
if user/team does not have event-type then skip configure step and goto apps/installed/[category]
* exclude calendars from apps- onboarding flow
* Update getAppOnboardingRedirectUrl.ts
* fix: On configure step, inputs aren't showing errors
* change route from `apps/onboarding` to `apps/installation`
* fix: flow not correctly working for teams
* should only allow team ADMIN or OWER to install an app to team
* Prevent two payment apps to be enabled
* removed loading state
* Fix type error
* undo new-app-flow from OmniInstallAppButton
* remove OAuth Step, handle step numbering
* fix: redirect url
* getAppOnboardingRedirectUrl refactor
* for debugging
* Revert "for debugging"
This reverts commit b9362c1a8f47f2280e684c213d7ec08d04a8ac4c.
* fix: added toaster
* feat: added support to select multiple events (almost)
* hide button
* Move inner form outside outer form using portal
Due to limitations with nested forms in React Hook Form, moved the inner form outside the outer form using a portal to ensure proper form handling.
* submit buttons refs madness
* removed configure step
we had to use query params to manage selected event-types, between routes which was causing 2 issues:
* each time we selected or unselected an event the whole page was reloaded including getserversideprops being called again and again
* the form was reloaded causing more issues
* removed extra unwanted code
* small fix
* fix: type error
* fix: types
* implemented suggested changes
* removed step footer
* fixed error.message
* removed commented styles
* removed step footer
* fix: Display team event types instead of user's on event types step when team selected
* fix: typo
* removed shouldLockDisableProps
* refactor setUpdatedEventTypesStatus, fix type
* removed extra code
* can't delete while saving
* added translations
* fix: loading in select account step, fix handle onSelect params type
* Fix typo
---------
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
* fix: type errors
* fix: failing tests
---------
Co-authored-by: sean-brydon <sean@cal.com>
Co-authored-by: Keith Williams <keithwillcode@gmail.com>
Co-authored-by: Joe Au-Yeung <j.auyeung419@gmail.com>
Co-authored-by: Somay Chauhan <somaychauhan98@gmail.com>
* feat: retell AI webhook url
* fix: type error
* chore
* chore: make company and email optional
* chore: remove logs
* chore: type error
* chore: type error
* fix: type err
* fix: pass guest email
* fix: type err
* chore: change date format
* chore: move advanced format
* added email and company form
* i18n
* feat: add guest email and company
* chore: update and format prompt
* chore: hint var
* chore: fix err message
---------
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Udit Takkar <udit222001@gmail.com>
* fix: Attendee address and phone number field not shown in booking questions
* Address review comments
---------
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>