Compare commits

...
707 Commits
Author SHA1 Message Date
zomars 984281963e v1.9.4 2022-09-07 19:03:31 -06:00
zomars ec8be2994c Submodule sync 2022-09-07 19:03:14 -06:00
zomars 8996a2aa8e Adds opt-in banner to mobile "more" menu 2022-09-07 19:02:24 -06:00
4856ed9977 Signup Flow improvements (#4012)
* Get login working

* Update website

* Fixes

* Save

* svae

* Save

* Change translation key

* Various fixes after testing

* Update website

* Add TS Tests

* Upate website

* Fix tests

* Fix linting and other issues

* Fix linting and other issues

* Fix bugs found during recording of demos

* Revert default coookie change

* Self review fixe

* Link fixes

* Removed inline styles, cleanup

* Various fixes

* Added new envs to e2e

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-07 18:38:37 -06:00
Alex van Andel d36d925788 Feature/goal reduce flaky tests (#4247)
* Wait for current_password input to be visible

* Login flow remove duplication + small fix change-password

* Made hash-my-url more robust

* Wait until locale is ready to resolve test flackiness

* Added waitForSelector before trying to fill inputs
2022-09-07 17:29:24 -06:00
NoahandAlex van Andel de54d75cd3 Add delete tooltip to event detail (#4259)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-09-07 23:20:08 +00:00
NoahandAlex van Andel 70ac949bea Move hidden label to toggle on events page (#4261)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-09-07 22:40:50 +00:00
34408c5593 Add calendar source to busy blocks (#3074)
* Add calendar source to busy blocks

* Update troubleshoot.tsx

* Type fixes

* Adds sources to availablity

# Conflicts:
#	apps/web/pages/availability/troubleshoot.tsx

* Update troubleshoot v1 and v2 with source element

* Type fixes

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Alan <alannnc@gmail.com>
2022-09-07 13:28:43 -06:00
Joe Au-Yeung 7da272f67a Prevent saving error responses from Zoom to user credentials (#3743) 2022-09-07 18:18:11 +00:00
sean-brydonandPeer Richelsen 46e46bc1de Fixing spacing on event details (#4238)
* Fixing spacing on event details

* Shell pb 40px

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-07 16:28:58 +00:00
Peer Richelsen 7b36df9eb3 added raycast to app store (#4231) 2022-09-07 15:33:27 +00:00
Peer Richelsen b4d1cb0988 added desktop app layout for v2.0, changed 2.0 banner (#4242) 2022-09-07 09:01:33 -06:00
Carina WollendorferandCarinaWolli e52af8d387 fix design (#4226)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-09-07 14:05:25 +00:00
Peer Richelsen e9b6e5144a temp disabled onboarding test due to flakiness (#4236) 2022-09-07 13:25:11 +00:00
0c6c23e1b0 New Crowdin translations by Github Action (#4225)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-07 14:49:53 +02:00
Peer Richelsen 458406feaf fixed booking navbar, fixed bookings buttons, fixed /success dark mode (#4230) 2022-09-07 14:49:30 +02:00
Peer Richelsen b9fc3ac076 Update README.md 2022-09-07 13:08:06 +02:00
sean-brydon 00f5ba2ac5 Rounded divider + Fixing button group (#4233) 2022-09-07 11:04:12 +00:00
Syed Ali Shahbaz f1436da96c fixes overflow rounded border (#4227) 2022-09-07 09:26:22 +02:00
30f8d12563 added /more page for mobile (#4219)
* added /more page for mobile

* i18n

* Navigation improvements

* Reverting unused exports

* Improved performance for getting mobile/desktop items

* I take your forEach and up it with reduce

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-06 22:13:31 -06:00
zomars 1561224dbb Type fixes 2022-09-06 21:25:17 -06:00
f3bedabf92 Fix/styles getting started v2 (#4224)
* Fixes spacings style

* Fix spacings

* Update test

* Fix router push when image upload is success, also typo

* Fix styles for mobile

* Sumodule sync

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-06 19:34:33 -06:00
58b3067b2b Hotfix Settings Shell (#4222)
* Add settings section prop to shell

* Clean up

* Adjustments

* Update Shell.tsx

* Update SettingsLayout.tsx

* Mobile drawer fixes

* Update VerticalTabItem.tsx

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-06 19:33:50 -06:00
zomars 6a6adf1c3c Submodule sync 2022-09-06 19:28:00 -06:00
zomars 2027447eab Takes you back to referer page on v2 opt-in 2022-09-06 19:18:47 -06:00
13c2dc24dc Feature/new onboarding page (#3377)
* [WIP] New design and components for onboarding page

* saving work in progress

* new fonts

* [WIP] new onboarding page, initial page, components

* WIP calendar connect

* WIP availability new design

* WIP onboarding page

* WIP onboarding, working new availability form

* WIP AvailabilitySchedule componente v2

* WIP availability with defaultSchedule

* User profile view

* Relocate new onboarding/getting-started page components

* Steps test for onboarding v2

* Remove logs and unused code

* remove any as types

* Adding translations

* Fixes translation text and css for step 4

* Deprecation note for old-getting-started

* Added defaul events and refetch user query when finishing getting-started

* Fix button text translation

* Undo schedule v1 changes

* Fix calendar switches state

* Add cookie to save return-to when connecting calendar

* Change useTranslation for useLocale instead

* Change test to work with data-testid instead of hardcoded plain text due to translation

* Fix skeleton containers for calendars

* Style fixes

* fix styles to match v2

* Fix styles and props types to match v2 design

* Bugfix/router and console errors (#4206)

* The loading={boolean} parameter is required, so this must be <Button />

* Fixes duplicate key error

* Use zod and router.query.step directly to power state machine

* use ul>li & divide for borders

* Update apps/web/components/getting-started/steps-views/ConnectCalendars.tsx

Co-authored-by: alannnc <alannnc@gmail.com>

* Linting

* Deprecation notices and type fixes

* Update CreateEventsOnCalendarSelect.tsx

* Type fixes

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-06 16:58:16 -06:00
7f2db86a83 updated workflows empty screen (#4218)
* updated workflows empty screen

* fix missing title

* small design fixes for cards

* add ... if workflow example exceeds 2 lines

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
2022-09-06 21:30:03 +00:00
91bc6ae820 V1->V2 connect calendar (#3961)
* V1->V2 connect calendar

* Fix imports

* Fix types

* Implementing v1 NoCalendarConnectedAlert changes on v2 component

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
2022-09-06 20:45:46 +00:00
Peer Richelsen 008706e5ac fixed i18n 2022-09-06 21:42:34 +02:00
zomars dad2fd098e Partial-Revert "V2/settings shell (#3987)"
This reverts commit 3a35eb413f.
2022-09-06 13:34:58 -06:00
Peer Richelsen c0b83c1df6 changed all new buttons, added i18n for routing forms (#4217) 2022-09-06 13:13:20 -06:00
Peer Richelsen 851fb25430 fixed height of recurring event select (#4213) 2022-09-06 13:01:05 -06:00
github-actions[bot]andCrowdin Bot 00d50f0285 New Crowdin translations by Github Action (#4214)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-09-06 20:55:34 +02:00
Peer Richelsen efc0bf6a5b event types new dropdown misaligned (#4216)
* fixed event type creation dropdown

* nit
2022-09-06 12:51:11 -06:00
Alex van AndelandPeer Richelsen dd9d7ab485 Added timeZone to v2, bugfix availabilityAsString (#4210)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-06 12:34:29 -06:00
+4 3a35eb413f V2/settings shell (#3987)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Troubleshoot container + Active on count

* Improve mobile

* NITS

* Fix padding on input

* Fix icons

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Create my account folder

* Add profile section

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* WIP

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Finish profile fields

* Show toast on success

* General tab WIP

* Even Type move order handles

* Add switching of destination calendar

* List calendar and delete

* Render empty screenwhen no calendars

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* added SidebarCard for promo to v2 and storybook (#3906)

Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Tooltip Provider - Wrapper due to dep upgrade

* public event type list darkmode

* V2 Color changes to public booking

* Remove unused component

* Fix typecheck

* Transfer to SSR

* Appearance screen made

* V2 image uploader

* WIP appearance page

* Remove unnecessary data from viewer.me

* Add profile translations

* Add translations to general page

* Add calendar switch

* Add calendar switch

* Add translations to appearance page

* Clean up conferencing page

* Clean up appearance page

* Draft shell on md screen

* fixed slots availability by fixing buffertime (#3756)

Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* Hidding import features from other services (#3970)

* Update PULL_REQUEST_TEMPLATE.md

* Fixes CLS when loading Avatars (#3973)

* Fixes CLS when loading Avatars

* Update packages/ui/v2/core/Avatar.tsx

Co-authored-by: Leo Giovanetti <hello@leog.me>

Co-authored-by: Leo Giovanetti <hello@leog.me>

* New Crowdin translations by Github Action (#3954)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Adding continue button to connectCalendar on getting-started view  (#3971)

* Adding continue button to connectCalendar view getting-started

* Fixing extra space

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>

* 2.0 Settings / My Account {View} (#3874)

* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Troubleshoot container + Active on count

* Improve mobile

* NITS

* Fix padding on input

* Fix icons

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Create my account folder

* Add profile section

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* WIP

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Finish profile fields

* Show toast on success

* General tab WIP

* Even Type move order handles

* Add switching of destination calendar

* List calendar and delete

* Render empty screenwhen no calendars

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* added SidebarCard for promo to v2 and storybook (#3906)

Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Tooltip Provider - Wrapper due to dep upgrade

* public event type list darkmode

* V2 Color changes to public booking

* Remove unused component

* Fix typecheck

* Transfer to SSR

* Appearance screen made

* V2 image uploader

* WIP appearance page

* Remove unnecessary data from viewer.me

* Add profile translations

* Add translations to general page

* Add calendar switch

* Add calendar switch

* Add translations to appearance page

* Clean up conferencing page

* Settings sidebar fixes

* Updates middleware

* Update SettingsLayout.tsx

* Settings layout improvements

* Type fix

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* AppStore CLI: Making video app creation a breeze with major cleanup of locations code throughout (#3825)

* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Add Embed ModalBox for routing forms

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Add duplicate form support

* Fix duplication logic

* Change to feathericons everywhere and other fixes

* Dont allow routes for fallback route

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Fix all TS issues

* Fix tests

* Troubleshoot container + Active on count

* Support routing using query params

* Improve mobile

* NITS

* Fix padding on input

* Support multiselect in router endpoint

* Fix the issue where app goes in embed mode after viewing embed once

* Fix icons

* Add router url tests

* Add Responses download and form toggling tests

* Add required validation test

* Change Icons everywhere

* App typeform app

* Improvements in cli

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Add typeform how-to-use page

* Add typeform how-to-use page and screenshots

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Fix TS error

* Add missing image

* Update CliApp.tsx

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Major locations cleanup, 10s of bug fixes and app-store improvements

* Fix missing pieces

* More fixes

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* more fixes

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Revert console

* Revert api

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* Fix TS errors

* Add missing import

* Fix CLI

* Add a default placeholder

* Remove hardcoded daily:integrations

* Fix message for payment page

* Revert api and console to main

* Update README

* Fix TS errors

* Fix Lint warnings

* Fix Tests

* Fix conflict issues

* Fix conflict issues

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>

* Button to test a workflow action (#3873)

* add Test action button + UI improvements

* add test action functionality

* add confirmation dialog before sending SMS

* code clean up

* show error message if test action fails

* disable test action button in edit mode

* fixes SMS testing

* use updated values

* fix wrongly updated data in useEffect

* fix typo

* code clean up

* fix UI issue in mobile view

* small design fix

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* Improve CLI App Help Text (#3982)

* Adds deprecation notice to QueryCell (#3977)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

* added campfire.to app (#3984)

* fixed file size campfire (#3985)

* added campfire.to app

* fixed file size

* Draft shell on md screen

* Draft small settings bar

* Add padding to dropdown menu

* WIP

* Create mobile settings nav

* Fix conferencing render

* Only display mobile settings nav

* Clean up my account section

* Clean up

* Remove old draft shell

* Remove old draft shell

* Implement changes from #3817

* Revise sidebar

* WIP

* Side navigation drawer

* Fix type error

* Fix lint problem

* Get rid of main top padding on main shell

* Fix e2e test

* Fix type error

* Remove unused imports

* Add back button function

* Update SettingsSidebarContainer.tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: Kszemi <mkrzemien11@gmail.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-09-06 12:23:17 -06:00
Peer Richelsen 62ab3056a5 fixed dropdown component styling, added new shadow-dropdown (#4211) 2022-09-06 17:56:13 +00:00
Peer Richelsen f9d639b157 fixed app bar on mobile (#4209) 2022-09-06 17:05:16 +00:00
hexcowboy b30ab45612 fix mobile styling for rainbowkit gate (#4207) 2022-09-06 18:40:28 +02:00
Peer Richelsen 143279699a fixed subpage pills (#4204)
* fixed subpage pills

* nit
2022-09-06 11:06:39 +02:00
bbf22a29b0 New Crowdin translations by Github Action (#4202)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-06 10:54:21 +02:00
5ca2c0561c New Crowdin translations by Github Action (#4188)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-06 10:53:25 +02:00
Syed Ali Shahbaz addd58cca6 fixes dark mode piblic page (#4201) 2022-09-06 10:50:36 +02:00
Carina Wollendorfer dc6f8d1f63 V2 workflow improvements (#4070) 2022-09-05 23:29:00 -04:00
zomars dc68b608a0 Adds apps/installed to blacklist v2 2022-09-05 19:09:04 -06:00
zomars 6fdbadc94b Removed disconnected calendar notice 2022-09-05 19:09:04 -06:00
Alex van Andel 046dadbae2 Fixes labels for v2 nav being blank (#4190) 2022-09-05 18:40:27 -06:00
zomars d0c66a0a64 v1.9.3 2022-09-05 15:26:14 -06:00
zomars 0ea42faa57 Submodule sync 2022-09-05 15:25:41 -06:00
35459a046b feat: Migrating App Store to v2 (#3911)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Troubleshoot container + Active on count

* Improve mobile

* NITS

* Fix padding on input

* Fix icons

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Even Type move order handles

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* Starting migration

* added SidebarCard for promo to v2 and storybook (#3906)

Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Tooltip Provider - Wrapper due to dep upgrade

* public event type list darkmode

* V2 Color changes to public booking

* Remove unused component

* Fix typecheck

* Explore all apps section WIP

* Update packages/ui/v2/core/layouts/AppsLayout.tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Interactive category list

* Moving stuff to pages/v2

* Latest changes

* Restoring uneeded changes

* Making v1 apps work

* Removing duplicated css util

* Update apps/web/middleware.ts

Co-authored-by: Omar López <zomars@me.com>

* Hiding categories for now

* Accomodating badges for app card

* Default for global apps, filtering tweaks

* Fixing types

* Reimplementing fixing types

* i18n + type fix

* Removing unneeded eslint exception

* Fixing tabs in app layout

* Commiting yarn.lock in case it helps

* Routing enabled category filter + responsive appcard

* Feat: v2 app store category/categories (#4126)

* Single category page

* Latest changes

* Applying feedback

* Migrates UpgradeToProDialog

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-05 15:22:28 -06:00
18d697436c Feat: Web3 Rainbowkit Integration (#4019)
* add new rainbow app and metadata

* add rainbowkit components

* add rainbow to event-type form

* create wallet connection ui

* verify signature when event is booked

* extract rainbow logic to app-store

* fix issues, dynamic import, theming

* skeleton, better api logic

* add gate logic to /[user]/book

* Fixes package.json

* Update yarn.lock

* Type fixes

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-05 15:10:58 -06:00
Carina WollendorferandCarinaWolli faf62ac8e7 Design improvements for v2 security settings pages (#4087)
* fix password change design

* fix 2fa design

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-09-05 15:08:59 -06:00
Omar López 8653e8eea5 Adds banner to Opt-in to V2 UI (#4187) 2022-09-05 14:25:21 -06:00
49a379ec6c fix: use json.parse to get id (#4001)
* fix: use json.parse to get id

* fix: type error

* fix: add zod parse

* chore: remove type

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-05 13:13:49 -06:00
52b2ce8774 V2.0 Shell - Progressive Rendering with Skeleton (#4138)
* Fix Routing

* Update up and down icons

* Add Shell Progressive loading

* Cleanup of custom loader

* Remove skeleton for heading and subtitle

* Replaces isI18nLoading for isLocaleReady

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-05 19:06:34 +00:00
10815c9541 Get user from token as required for magic login to work (#4163)
* Get user from token as required for magic login to work

* Update apps/web/pages/api/auth/[...nextauth].tsx

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Linting

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-05 11:39:16 -06:00
Alex van Andel ebd4ce0340 Bugfix/typescript performance (#4073)
* next-env.d.ts should be generated as part of next build

* Removed next-env.d.ts from storybook

* Remove barrel imports from '@calcom/ui/v2/...' content

* Remove tabs barrel

* Further changes as the barrel for tabs is removed
2022-09-05 17:16:42 +01:00
Syed Ali Shahbaz 0e63996ee2 V2 select fixes (#4123) 2022-09-05 15:34:03 +00:00
Peer Richelsen 898c83d1ad added new VerticalDivider, using it in Event-types, fixed padding in app store (#4165)
* added new VerticalDivider, using it in Event-types

* fixed event-type app store empty screen padding and workflows padding

* centered emtpyscreen description

* made empty screen button secondary on app store

* fixed hide from profile on mobile

* squared dropdown on event-types
2022-09-05 15:15:26 +00:00
Peer RichelsenandAlex van Andel d0aaa4d83b fixed horizontal nav on mobile, hiding scrollbar (#4176)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-09-05 14:50:26 +00:00
github-actions[bot]andCrowdin Bot c610c73378 New Crowdin translations by Github Action (#4184)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-09-05 16:31:17 +02:00
8602a0a6e1 V2 Fixes (#4156)
* Remove shadow

* Empty screen

* V2 Create event type

* Fix switch not being right alligned

* Fix modal anatomy

* Fix layouts across app

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-05 16:23:18 +02:00
Peer Richelsenandkodiakhq[bot] 7b0d4f0f78 #4133 fixed tooltip positioning (#4136)
* fixed tooltip positioning

* fixed right side tooltip and z-index

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-05 12:49:20 +02:00
Peer Richelsen b0a1902ca3 fixed dark mode avatar border (#4161) 2022-09-05 12:27:40 +02:00
Peer Richelsen ae5030198c replaced gravatar default (#4158) 2022-09-05 10:23:39 +00:00
Peer Richelsen 8a2005ccf1 fixed search icon and tablet menu (#4139) 2022-09-05 10:02:21 +00:00
Peer Richelsen 1c90dcaa62 fixed campfire regex (#4149) 2022-09-04 22:30:35 +02:00
4ea29ed2ac #4141: Fixed stretched image in app detail page. (#4144)
Co-authored-by: Jeroen Reumkens <jeroen.reumkens@deptagency.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-04 22:25:32 +02:00
github-actions[bot]andCrowdin Bot 45bdfcfb7d New Crowdin translations by Github Action (#4147)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-09-04 22:24:44 +02:00
Jeroen ReumkensandJeroen Reumkens 93adf57d00 #4110: Made vertical tabs in bookings and event types pages sticky. (#4145)
Co-authored-by: Jeroen Reumkens <jeroen.reumkens@deptagency.com>
2022-09-04 14:59:16 +00:00
5e77b95e48 New Crowdin translations by Github Action (#4143)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-03 19:17:33 +02:00
Peer Richelsen dbca3ee780 fixed add a location button (#4137) 2022-09-03 19:14:30 +02:00
Peer Richelsen c9d384c397 removed bg behind app logo and made category icon rounded (#4142) 2022-09-03 19:14:02 +02:00
MrBirbandPeer Richelsen a213fa95f8 Delete ColorPalletGenerator.js (#4075)
I believe this is not used anywhere.

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-03 10:22:14 +02:00
1948455be0 wip: remove metamask app (#4049)
* wip: disable metamask app

* fix: remove dont comment

* fix: remove dont comment

* Update packages/app-store/index.ts

Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* Update packages/app-store/index.ts

Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* fix: bookingpage

* fix: remove web3Details zod

* removed unused web3

* Build fixes

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-02 17:55:12 -06:00
sean-brydon 015ed6d4f9 Public Booking Pages (#4063)
* Teams + /book

* Consitant hoverstate across event-type cards

* Fix darkmode hover on book a team member

* Fix mobile wrapping

* Fix mobile looking awful with long links

* Fix storybook

* Fix SB

* Phone Input darkmode

* Location radio styles darkmode

* Off Topic: NIT add disable guests

* Update highlights on /book and [user]/[type]

* Fix preview URL

* Fix hover state

* Fix spacing for locations
2022-09-02 21:16:36 +00:00
checkly[bot] 265af73ad0 [Checkly] adds "Cal.com Dashboard" code (#4134)
Co-authored-by: checkly[bot] <54914329+checkly[bot]@users.noreply.github.com>
2022-09-02 20:59:06 +00:00
46f2142e5f V2 for app setup pages (#4086)
* add v2 for app setup pages

* create v2 app setup page

* Build fixes

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-02 14:39:44 -06:00
zomars bcb7861a04 Unleash full parallel e2e power 2022-09-02 13:39:45 -06:00
zomars 52289a5cb5 Adds deprecation notice for Loader 2022-09-02 13:39:45 -06:00
Peer Richelsen f353da625e /booking v2 fixes (#4117)
* fixed wipe my cal button

* fixed booking buttons

* new buttons for request reschedule

* removed "yet" from empty screen in booking
2022-09-02 21:30:06 +02:00
26b771064d V2.0 - Routing Forms and Shell 2.0 everywhere (#3902)
* Add duplicate form support

* Fix duplication logic

* Change to feathericons everywhere and other fixes

* Dont allow routes for fallback route

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Fix all TS issues

* Fix tests

* Troubleshoot container + Active on count

* Support routing using query params

* Improve mobile

* NITS

* Fix padding on input

* Support multiselect in router endpoint

* Fix the issue where app goes in embed mode after viewing embed once

* Fix icons

* Add router url tests

* Add Responses download and form toggling tests

* Add required validation test

* Change Icons everywhere

* App typeform app

* Improvements in cli

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Add typeform how-to-use page

* Add typeform how-to-use page and screenshots

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Fix TS error

* Add missing image

* Update CliApp.tsx

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Major locations cleanup, 10s of bug fixes and app-store improvements

* Fix missing pieces

* More fixes

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* more fixes

* EventType Team page WIP

* Fix embed

* Use new Shell

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* Get form-edit page working

* Get route-builder page working

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Get UI as per designs for form-edit

* Make route-builder upto date with design

* Add no responses banner

* Update forms list as per designs

* Button shouldnt decide where it would be positioned, users of it might have different requirements

* A single select box in a row(when no other select boxes are present) wasnt taking the correct width in comparison to when it had other select boxes

* Small missing pieces

* Revert console

* Revert api

* Fixes

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* Fix TS errors

* Add missing import

* Fix CLI

* Add a default placeholder

* Remove hardcoded daily:integrations

* Fix message for payment page

* Revert api and console to main

* Update README

* Fix TS errors

* Fix Lint warnings

* Fix Tests

* Streamline actions and make them easy to manage

* A much more simplified approach to implementing actions

* Fix embed

* Fix most TS errors

* Fix more TS errors

* Reduce TS errors to zero

* Fix tests

* Fix UI

* Fix UI

* Self review fixes

* TS failures caught merge issues

* Security hardening

* Use V2 Shell everywhere

* Add missing file

* Problems created by new shell fixed

* Fix Shell

* Fix Routing Form Card up and down positons

* Fix Embed and other design fixes

* Fix dropdown old event-types

* Fix type errors

* Fix allowed chek

* Fix dropdown not closing on clicking EMbed button

* Fix dropdown not closing on embed button

* Fix event-type button group layout

* Add label for switch

* Fix dropdown in mobile mode

* Remove useless comments

* Login with pro for tests

* Remove bg gray till App-Store pages are revamped

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-09-02 19:00:41 +00:00
f3be103456 feat: #3921 Added v2 design for booking details. (#4118)
Co-authored-by: Jeroen Reumkens <jeroen.reumkens@deptagency.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-09-02 15:12:58 +02:00
0e54f755e3 New Crowdin translations by Github Action (#4125)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-02 15:10:19 +02:00
9b9a16b847 New Crowdin translations by Github Action (#4121)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-02 13:43:00 +02:00
Peer Richelsen 31abf01724 added "add another calendar" to event-types detail in advanced (#4122) 2022-09-02 13:42:39 +02:00
Lennart GastlerandPeer Richelsen 11b52c839c fix: add extra word-break for chromium (#4080)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-02 13:14:12 +02:00
github-actions[bot]andCrowdin Bot 7d7e4464d2 New Crowdin translations by Github Action (#4068)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-09-02 13:11:48 +02:00
sean-brydon 03a9996c84 Tidy up on event-types + NITS (#4119)
* Apply correct padding to switch

* Make gray badges less eye catching

* Update description text color

* Tidy up setup tab

* Use V2 dialog on edit location

* use V2 select

* Menu Item component + fix menuitem

* Fix dropdown alignment
2022-09-02 13:10:55 +02:00
Omar López d27b7ab2c4 One playwright config to rule them all (#4072) 2022-09-01 20:00:48 -06:00
Peer RichelsenandCarina Wollendorfer b09d727d3f small fixes to switch (#4067)
Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
2022-09-01 18:48:25 -04:00
0db1b3f023 Fixes 400 being thrown for NaN on disabling seats (#3945)
* Fixes 400 being thrown for NaN

* remove log

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-01 10:37:47 -06:00
Peer RichelsenandAlex van Andel a97bfbb1ce added lottie-react, added <Logo animated> for success page (#4083)
* added lottie-react, added <Logo animated> for success page

* Fixes lint issues

Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-09-01 13:37:21 +01:00
Peer Richelsen d87ddef135 fixes dark mode for success (#4081) 2022-09-01 13:18:02 +02:00
Syed Ali ShahbazandPeer Richelsen c455639ff4 Feat/v2 daterangepicker (#4002)
* fixes minimum notice label

* adds story for daterange picker

* imports styles from global

* adds daterangepicker type inside packages types folder

* wraps tooltip with tooltip provider

* improvements

* further fixes

* fixes NIT

* match design specs

* adds space between input and calendar

* NITs

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-09-01 10:09:08 +00:00
Peer Richelsen d5b7195d67 fixed dark mode skeleton on public page (#4064) 2022-09-01 10:22:49 +01:00
Omar Lópezandkodiakhq[bot] fe67b99096 Refactors google calendar service (#3933)
* Refactors google calendar service

* Update CalendarService.ts

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-09-01 04:42:53 +00:00
Udit Takkar 84cff3613a feat: reschedule workflow added (#3996) 2022-08-31 23:09:34 +00:00
zomars 4308138170 Update yarn.lock 2022-08-31 15:16:44 -06:00
HashenandOmar López d876688325 Bump tsdav from 2.0.2 to 2.0.3 (#3632)
Co-authored-by: Omar López <zomars@me.com>
2022-08-31 15:05:33 -06:00
f4fe91396f Improve 2fa: ask for code before account removal and 2fa disabling (#3817)
* fix conflicts

* fix remove separate function and call mutation directly

* feat: add new react-otp-input to enable 2fa flow

* fix: comment out

* fix: remove next-auth 4.9.0 from yarn.lock

* fix: delete account test fill password before submit

* fix: test delete accc

* fix typo in delete acc test

* Update apps/web/components/security/EnableTwoFactorModal.tsx

Co-authored-by: Omar López <zomars@me.com>

* feat: remove react-otp-input reuse TwoFactor

* feat: add center props to TwoFactor

* fix: no v2

* feat: disable 2fa requires 2fa api

* feat: make 2fa required to disable 2fa

* fix: FormEvent instead of SyntheticEvent

* fix: types

* fix: move disable 2fa form to fully use RHF

* fix     if (e) e.preventDefault();

* feat: fix remove account

* fix: remove react-otp-input types

* fix: separate onConfirm to add to form handleSubmit

* fix: types e:SyntethicEvent

* fix: types

* fix: import packages lib not web lib

* Update apps/web/components/security/EnableTwoFactorModal.tsx

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/components/security/EnableTwoFactorModal.tsx

Co-authored-by: Omar López <zomars@me.com>

* fix: no import from web

* fix: import

* fix: remove duplicate FormEvent

* fix: upgrade ErrorCode imports

* fix profile types totpCode not optional

* fix: build pass

* fix: dont touch test delete-account

* fix: type

* fix: add data-testid to password field

* fix: conflicts w syncServices

* Build fixes

* Fixes delete account e2e test

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-31 14:57:53 -06:00
58c4c894fd fix: update rejectOnNotFound -> find(Fist|Unique)OrThrow (#3829)
* fix: update rejectOnNotFound -> find(Fist|Unique)OrThrow

* fix: add back custom errohandling

* feat: handle notfounderror in getServerErrorFromUnknown

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Omar López <zomars@me.com>
2022-08-31 13:44:47 -06:00
+2 eeabb53c82 V2 Workflows (#4047)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Troubleshoot container + Active on count

* Improve mobile

* NITS

* Fix padding on input

* Fix icons

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* add Test action button + UI improvements

* add test action functionality

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* add confirmation dialog before sending SMS

* code clean up

* show error message if test action fails

* disable test action button in edit mode

* fixes SMS testing

* use updated values

* fix wrongly updated data in useEffect

* fix typo

* code clean up

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* setup folders for v2

* add lost translations from merge

* add all files to v2 + redesign /workflows

* use custom template as default template

* add first version of v2 for workflow editing page

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* use fi icon for down arrow

* add v2 shell

* add trigger badge

* Even Type move order handles

* fix save button

* enable editing of workflow name

* improve delete workflow functionality

* adjust empty screen

* make trigger start with uppercase

* change trash icon

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* create component for time and timeUnit input/dropdown

* add workflows to v2 early access middleware

* fix type issues

* added SidebarCard for promo to v2 and storybook (#3906)

Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Tooltip Provider - Wrapper due to dep upgrade

* public event type list darkmode

* V2 Color changes to public booking

* adjust delete and edit button

* create custom empty screen for worklows

* add workflow examples to empty page

* add loading state to button when creating first workflow

* Show action as workflow name when no name exists

* if no input leave name empty when updating workflow

* use reminder template when creating workflow

* improve time unit dropdown

* Remove unused component

* Fix typecheck

* add loading state to new workflow button

* add label before action dropdown

* fixing badges in worflow list

* use lighter color for untitled workflows

* fix not showing nr of active eventtypes in workflow list

* add workflows to event types

* implement v2 desing for AddActionDialog

* improve phone input

* rounded borders for phoneInput in add action dialog

* improve message input

* fix mobile view for editing page

* use md breakpoint for mobile view

* finish workflows in event type settings

* code cleanup

* code cleanup

* fix bug in testing workflow action

* add v2 design for addition inputs as variables dialog

* add V2 design for add variable dropdown

* add notification icons to trigger badge

* improve mobile version of workflows in eventtypes

* remove ring from time before input

* fix bug when workflow has no steps

* Final UI improvements/fixes

* code clean-up

* code clean-up

* code clean-up

* use v2 design for license required

* fix translation issues

* fix adding variables in different language in old design

* limit for pro users only for now

* fix import

* fix mobile view for empty screen

* ues destructive button color for deleting workfow

* remove padding at button of creation dialog

* V2 Settings - Security View (#4018)

* Create change password screen

* Add two factor auth screen

* Add two factor auth screen

* Remove header file

* Updates middleware and rewrites

* Adds Meta component to handle layout headings/metadata (#4021)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>

* fix: rate limit auth (#3820)

* fix: rate limit auth

* fix: replace lru-cache w memory-cache

* remove comments

* fix: yarn.lock

* fix: remove changes yarn lock

* fix: add missing EOL empty liune

* fix: move rate limiter so it kicks the last, limit to 10 tries per minute

* fix: move limiter w rest of code

* test: trying fix onboardong

* fix: undo changes in globalSetup.ts

* test: fix disable login for onboarding

* fix: use username instead of email for token check

* fix: tests

* fix: don't run on test

* fix: add missing comma

* fix: remove uniqueTokenPerInterval

* fix: add errorcode to packages lib auth

* Update packages/lib/rateLimit.ts

fix: improve readability

Co-authored-by: Omar López <zomars@me.com>

* Update packages/lib/rateLimit.ts

fix: no unnecessary any

Co-authored-by: Omar López <zomars@me.com>

* Update packages/lib/rateLimit.ts

fix: improve readability

Co-authored-by: Omar López <zomars@me.com>

* fix: rename interval -> intervalInMs

* fix: check user.email not username which could be empty

* fix: rateLimit update all naming

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* Adds deprecation comments

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
2022-08-31 13:42:37 -06:00
6c3dcc2fbf fix: lark calendar refresh token bug (#4066)
Co-authored-by: chengcheng.frontend <chengcheng.frontend@bytedance.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: Peer Richelsen <peeroke@gmail.com>
2022-08-31 19:19:30 +00:00
zomars 397d47b4b5 Clean up auth state after all E2E tests are done 2022-08-31 12:28:29 -06:00
zomars e020bb9758 Uncap local e2e testing 2022-08-31 11:30:05 -06:00
zomars dbbf77f21a Revert "Fixes type error (#4065)"
This reverts commit 19ae065f68.
2022-08-31 11:05:30 -06:00
sean-brydon 19ae065f68 Fixes type error (#4065) 2022-08-31 17:12:44 +02:00
Hariom Balharaandkodiakhq[bot] bb0ff5503a Fix locations listing in v2 (#4062)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-31 14:11:36 +02:00
sean-brydon e17c463890 V2 General Fixes (#4038) 2022-08-31 11:13:27 +00:00
Hariom Balharaandkodiakhq[bot] f5e394bb57 Add back enabledDateButton and disabledDateButton UI custom styling for embed (#4059)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-31 09:47:23 +00:00
Hariom Balhara 2414cacabb Fix routing forms logo (#4058) 2022-08-31 09:26:16 +00:00
Peer Richelsen dd24ef4946 added translation for meeting ended webhook (#4057) 2022-08-31 10:30:05 +02:00
a3eeb9e3a3 Fix Zapier setup page (#4054)
* fix zapier setup page

* update app description

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-31 09:43:40 +02:00
b151ccd4c6 prevent from save doubled subscriber url (#3811)
Co-authored-by: Adam Garbowski <adamgarbowski90@gmail.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2022-08-31 03:41:23 +00:00
zomars 0c8847fb87 Restores linting/type-check locally 2022-08-30 15:24:17 -06:00
b8b1b9a6d0 fix: rate limit auth (#3820)
* fix: rate limit auth

* fix: replace lru-cache w memory-cache

* remove comments

* fix: yarn.lock

* fix: remove changes yarn lock

* fix: add missing EOL empty liune

* fix: move rate limiter so it kicks the last, limit to 10 tries per minute

* fix: move limiter w rest of code

* test: trying fix onboardong

* fix: undo changes in globalSetup.ts

* test: fix disable login for onboarding

* fix: use username instead of email for token check

* fix: tests

* fix: don't run on test

* fix: add missing comma

* fix: remove uniqueTokenPerInterval

* fix: add errorcode to packages lib auth

* Update packages/lib/rateLimit.ts

fix: improve readability

Co-authored-by: Omar López <zomars@me.com>

* Update packages/lib/rateLimit.ts

fix: no unnecessary any

Co-authored-by: Omar López <zomars@me.com>

* Update packages/lib/rateLimit.ts

fix: improve readability

Co-authored-by: Omar López <zomars@me.com>

* fix: rename interval -> intervalInMs

* fix: check user.email not username which could be empty

* fix: rateLimit update all naming

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-30 13:58:35 -06:00
f5c1c76f0a V2 Settings - Security View (#4018)
* Create change password screen

* Add two factor auth screen

* Add two factor auth screen

* Remove header file

* Updates middleware and rewrites

* Adds Meta component to handle layout headings/metadata (#4021)

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-30 13:46:52 -06:00
Zach Waterfieldandkodiakhq[bot] e66050a414 Improve the README development setup steps around environment variables (#4034)
* Set the NEXTAUTH_URL in the .env example

* Add a .env step to the README development setup steps.

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-30 12:44:21 -06:00
Deepak Prabhakara 1a81459e28 Fix SAML login (#4037)
* after first login the user is read from the db and hence we need to inspect the `emailVerified` attribute as well.

* fixed mapping documentation for SAML, the current mapping is not right and is causing confusion
2022-08-30 12:25:24 -06:00
Cheng CHENGandchengcheng.frontend ad8d0a4e77 fix: lark calendar get app access token bug (#4043)
Co-authored-by: chengcheng.frontend <chengcheng.frontend@bytedance.com>
2022-08-30 13:08:29 -04:00
sean-brydon fe12a83898 Fixing padding + heading sizes (#4032)
* Fixing padding + heading sizes

* Fix title position
2022-08-30 15:47:43 +02:00
sean-brydon 7d611c5527 Border color - brand color - mobile 1 colum times (#4025) 2022-08-30 13:51:08 +02:00
Alex van Andel 0bd8c23be7 Proposal to turn off eslint during 'yarn / next build' (#4027) 2022-08-30 13:50:34 +02:00
Alex van Andel fdc8a839b4 Fix linting error (#4026) 2022-08-30 13:46:03 +02:00
3da3e6ec38 feat: Adds new v2 design for app detail page. Fixes #3779 (#3997)
* feat: Adds new v2 design for app detail page. Fixes #3779

* fix: Made app images 90% width on mobile to show indication for scrolling. #3779

* Update apps/web/components/v2/apps/App.tsx

Co-authored-by: Leo Giovanetti <hello@leog.me>

Co-authored-by: Jeroen Reumkens <jeroen.reumkens@deptagency.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: Peer Richelsen <peer@cal.com>
2022-08-30 11:37:40 +02:00
sean-brydon fb3c481235 V2 colors - Public Booking (#4022)
* V2 colors

* Fix border right

* Fixing spacing
2022-08-30 10:56:30 +02:00
alannnc 3527c5126a Added Syntax error case and also default error returning (#4015) 2022-08-29 18:05:35 -06:00
d75a8910f6 Update all Yarn dependencies (2022-08-17) (#3887)
* Update all Yarn dependencies (2022-08-17)

* Fix package mismatches

* Submodule sync

* Type fixes

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-29 17:55:27 -06:00
Omar Lópezandkodiakhq[bot] 037410aea7 One jest to rule them all (#3957)
* WIP

* Consolidates jest deps

* Test fixes

* Moves jest to root

* Test fixes

* Update CalendarService.test.ts

* Cleanup

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-29 22:33:53 +00:00
zomars 54bd1436b1 v1.9.2 2022-08-29 16:20:20 -06:00
zomars a262d261a7 Submodule sync 2022-08-29 16:20:06 -06:00
e4e4ec5ffc Availability and booking info text format fixes (#4000)
* Recurring info format

* More mismatch visual bugs when booking

* More tweaks

* Prettier

* Prettier cont

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-29 13:01:45 -03:00
00c00a9aee fix: add required property on input (#3934)
* fix: add required property on input

* chore: remove console

* fix: add check in /api/book for custom inputs

* chore: var name

* wip:try zod

* fix: change zod validation

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-29 13:04:22 +00:00
Peer Richelsen 85cc62d0cb temp remove <Tips> card from sidebar till 2.1 (#4010) 2022-08-29 14:04:39 +02:00
Udit TakkarandPeer Richelsen ac50492fbc fix: add warn and trash icon (#4008)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-29 13:57:01 +02:00
4b771a5bde fixing cursor for Default badge svg, from text type to default (#3994)
Co-authored-by: alannnc <alannnc@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-28 18:31:56 +02:00
944f4dc43b fix: pass recurring count value (#3844)
* fix: pass recurring count value

* fix: show dates for pending booking

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-08-27 10:12:38 -03:00
Leo Giovanetti cfe7c7a5b3 Fixing CalendarService tests (#3993) 2022-08-26 17:21:12 -06:00
Edgar Allan Glezandalannnc d1c5268ef0 Feature 3976/fix label (#3992)
* changing username label placeholder to Apple ID text in apple calendar setup

* reset yarn.lock

* remove translate function for apple id label, not necessary

Co-authored-by: alannnc <alannnc@gmail.com>
2022-08-26 16:49:38 -06:00
02ac593ebf Migrate legacy api endpoints to tRPC II (#3865) (#3991)
* Migrate legacy api endpoints to tRPC II (#3865)

* fix: delete api route /api/availability/day

* fix: delete api route /api/availability/eventtype (#3573)

* fix: delete api route /api/event-type (#3573)

* migrate /api/book/confirm to viewer.bookings.confirm

* Merge branch 'main' into pr/3865

Co-authored-by: hussamkhatib <hussamkhatib@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>

* Import fixes

* Import fixes

Co-authored-by: mohammed hussam <52914487+hussamkhatib@users.noreply.github.com>
Co-authored-by: hussamkhatib <hussamkhatib@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-26 15:58:08 -06:00
1d927a8b33 chore: Sync Services to update external tools (#3814)
* WIP close.com app

* Removing leaked dev key (now invalid)

* Misspelled env variable

* Making progress still WIP

* Progress + tests

* Final touches

* More unit tests

* Finished up tests

* Merge main

* Removing unneeded stuff + submodules

* Removing static props, fields fix

* Removing unneeded stuff p2

* Commenting

* Refactoring Close.com Calendar Service + initial structure

* Progress con CloseComService

* Standarizing APIs

* Zodifying

* Expanding sync services

* Sendgrid Sync Service

* using own request for sendgrid + debug logs

* Making get last booking work for console

* Helpscout dynamic app API

* Standarizing calls + adding call from booking creation

* Strategy change for last booking

* Strategy change for last booking on help scout api

* Fixing failing build

* Implementing user deletion

* Fix linting + slight cleaning

* Undoing eslint disable

* Removing more unsupported eslint properties

* Closecom as non-standard sync service

* Finishing closecom lead operations

* Fixing lint

* Guarding app from sync services

* Reverting submodules

* Applying PR feedback

* Reverting API to be plain handler

* Cleaning notes

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-26 15:10:12 -06:00
sean-brydonandPeer Richelsen 090a977f72 AppsTab UX + fixes warptext on horizontal tabs (#3966)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-26 13:04:45 -06:00
2d3a6fb4ca fix: add team model in prisma middleware (#3947)
* fix: add team model in prisma middleware

* refactor: move to getParsedResults function

* fix: add eventtype

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-26 12:59:58 -06:00
974ff03127 REPLY_TO in hello@cal.com emails (#3959)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: gitstart <gitstart@gitstart.com>
Co-authored-by: Nitesh Singh <nitesh.singh@gitstart.dev>
Co-authored-by: Matheus Muniz <87545749+matheusmuniz03@users.noreply.github.com>
Co-authored-by: hustle-ps <grace.devolop@gmail.com>
Co-authored-by: Júlio Piubello da Silva Cabral <julio.piubello@gitstart.dev>
Co-authored-by: Matheus Benini <matheus_benini@hotmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-26 12:51:32 -06:00
4ef666a610 Zoom/Hubspot Tests with MSW mocking of requests initiated from Next.js server (#3210)
* Add code from previous PR

* Remove env variables from wrong place

* Fix tests

* Remove dead code

* Package.json updates

* Fix eslint error

* Fix issue due to conflict resolution

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-26 12:44:02 -06:00
Alex van Andel e0744a4857 Fixed a typo in notifications->showToast & updated all imports (#3990) 2022-08-26 12:13:49 -06:00
fac99c3e9b Disable broken calendar email (#3946)
* Disable broken calendar email

* Add comment

* Apply suggestions from code review

Co-authored-by: alannnc <alannnc@gmail.com>

* Apply suggestions from code review

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2022-08-26 12:12:47 -06:00
Alex van Andel 006badc3b5 Backported 973e0a3..6ad0e23 (#3943) 2022-08-26 12:07:44 -06:00
Alex van Andel 19e9e0083e Static images through webpack copy (#3986)
* Static images through webpack copy

* Turn image optimisation off - not needed tbh
2022-08-26 10:31:55 -06:00
Peer Richelsen 19fe931f4b fixed file size campfire (#3985)
* added campfire.to app

* fixed file size
2022-08-26 14:46:15 +02:00
Peer Richelsen 0856339e3a added campfire.to app (#3984) 2022-08-26 11:35:19 +00:00
Omar Lópezandkodiakhq[bot] cf321496d4 Adds deprecation notice to QueryCell (#3977)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-26 09:32:58 +00:00
Hariom Balhara c6e54d9d9d Improve CLI App Help Text (#3982) 2022-08-26 09:33:00 +02:00
b00402f429 Button to test a workflow action (#3873)
* add Test action button + UI improvements

* add test action functionality

* add confirmation dialog before sending SMS

* code clean up

* show error message if test action fails

* disable test action button in edit mode

* fixes SMS testing

* use updated values

* fix wrongly updated data in useEffect

* fix typo

* code clean up

* fix UI issue in mobile view

* small design fix

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-26 01:04:44 +00:00
6c86317081 AppStore CLI: Making video app creation a breeze with major cleanup of locations code throughout (#3825)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Add Embed ModalBox for routing forms

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Add duplicate form support

* Fix duplication logic

* Change to feathericons everywhere and other fixes

* Dont allow routes for fallback route

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Fix all TS issues

* Fix tests

* Troubleshoot container + Active on count

* Support routing using query params

* Improve mobile

* NITS

* Fix padding on input

* Support multiselect in router endpoint

* Fix the issue where app goes in embed mode after viewing embed once

* Fix icons

* Add router url tests

* Add Responses download and form toggling tests

* Add required validation test

* Change Icons everywhere

* App typeform app

* Improvements in cli

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Add typeform how-to-use page

* Add typeform how-to-use page and screenshots

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Fix TS error

* Add missing image

* Update CliApp.tsx

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Major locations cleanup, 10s of bug fixes and app-store improvements

* Fix missing pieces

* More fixes

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* more fixes

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Revert console

* Revert api

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* Fix TS errors

* Add missing import

* Fix CLI

* Add a default placeholder

* Remove hardcoded daily:integrations

* Fix message for payment page

* Revert api and console to main

* Update README

* Fix TS errors

* Fix Lint warnings

* Fix Tests

* Fix conflict issues

* Fix conflict issues

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-25 18:48:50 -06:00
87cce8eab6 2.0 Settings / My Account {View} (#3874)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Troubleshoot container + Active on count

* Improve mobile

* NITS

* Fix padding on input

* Fix icons

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Create my account folder

* Add profile section

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* WIP

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Finish profile fields

* Show toast on success

* General tab WIP

* Even Type move order handles

* Add switching of destination calendar

* List calendar and delete

* Render empty screenwhen no calendars

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* added SidebarCard for promo to v2 and storybook (#3906)

Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Tooltip Provider - Wrapper due to dep upgrade

* public event type list darkmode

* V2 Color changes to public booking

* Remove unused component

* Fix typecheck

* Transfer to SSR

* Appearance screen made

* V2 image uploader

* WIP appearance page

* Remove unnecessary data from viewer.me

* Add profile translations

* Add translations to general page

* Add calendar switch

* Add calendar switch

* Add translations to appearance page

* Clean up conferencing page

* Settings sidebar fixes

* Updates middleware

* Update SettingsLayout.tsx

* Settings layout improvements

* Type fix

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-25 18:11:41 -06:00
11dc9c668e Adding continue button to connectCalendar on getting-started view (#3971)
* Adding continue button to connectCalendar view getting-started

* Fixing extra space

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-08-25 21:27:37 +00:00
github-actions[bot]andCrowdin Bot 8f6ba440b7 New Crowdin translations by Github Action (#3954)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-25 22:51:58 +02:00
Omar LópezandLeo Giovanetti 18c949207e Fixes CLS when loading Avatars (#3973)
* Fixes CLS when loading Avatars

* Update packages/ui/v2/core/Avatar.tsx

Co-authored-by: Leo Giovanetti <hello@leog.me>

Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-08-25 19:35:01 +00:00
Omar López b84c8d9e82 Update PULL_REQUEST_TEMPLATE.md 2022-08-25 12:29:19 -06:00
alannnc 4feda21d22 Hidding import features from other services (#3970) 2022-08-25 20:25:00 +02:00
KszemiandPeer Richelsen 45f16333a8 fixed slots availability by fixing buffertime (#3756)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-25 18:57:15 +02:00
9c3cea512f Fixing back reference to recurring event when rescheduled (#3967)
* fix: pass recurring count value

* fix: show dates for pending booking

* Restoring recurringEventId on reschedule

* Reverting other changes from a different PR

Co-authored-by: Udit Takkar <udit.07814802719@cse.mait.ac.in>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-08-25 15:18:03 +00:00
Syed Ali Shahbaz 7f94ce0605 Fix availability free-busy data pull, location change and status in CALDAV | new branch (attempt#2) (#3958) 2022-08-25 14:48:30 +05:30
alannncandOmar López 1b541ff214 Fix/connected calendar component (#3956)
* Fix for displaying connected calendars alert with test

* Fix default calendar display string when externalId its too long

* Update apps/web/components/ui/LinkText.tsx

Co-authored-by: Omar López <zomars@me.com>

Co-authored-by: Omar López <zomars@me.com>
2022-08-24 19:44:14 -06:00
zomars 5950b62b02 Create add-PRs-to-project.yml 2022-08-24 16:46:43 -06:00
436f88a48e V2 Main (#3549)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

* Login Page

* Add welcome back i118n

* EventType page work

* Update EventType Icons

* WIP Availability

* Horizontal Tab Work

* Add build command for in root

* Update build DIr/command

* Add Edit Button + change buttons to v2

* Availablitiy page

* Fix IPAD

* Make mobile look a little nicer

* WIP bookingshell

* Remove list items from breaking build

* Mian bulk of Booking Page.

* Few updates to components

* Fix chormatic feedback

* Fix banner

* Fix Empty Screen

* Text area + embded window fixes

* Semi fix avatar

* Troubleshoot container + Active on count

* Improve mobile

* NITS

* Fix padding on input

* Fix icons

* Starting to move event types settings to tabs

* Begin migration to single page form

* Single page tabs

* Limits Page

* Advanced tab

* Add RHF to dependancies

* Most of advanced tab

* Solved RHF mismtach

* Build fixes

* RHF conditionals fixes

* Improved legibility

* Major refactor/organisation into optional V2 UI

* Portal EditLocationModal

* Fix dialoug form

* Update imports

* Auto Animate + custom inputs WIP

* Custom Inputs

* WIP Apps

* Fixing stories imports

* Stripe app

* Remove duplicate dialog

* Remove duplicate dialog

* Fix embed URL

* Fix app toggles + number of active apps

* Fix container padding on disabledBorder prop

* Removes strict

* EventType Team page WIP

* Fix embed

* NIT

* Add Darkmode gray color

* V2 Shell WIP

* Fix headings on shell V2

* Fix mobile layout with V2 shell

* V2 create event type button

* Checked Team Select

* Hidden to happen on save - not on toggle

* Team Attendee Select animation

* Fix scheduling type and remove multi select label

* Fix overflow on teams url

* Even Type move order handles

* Fix Embed TS errors

* Fix TS errors

* Fix Eslint errors

* Fix TS errors for UI

* Fix ESLINT error

* added SidebarCard for promo to v2 and storybook (#3906)

Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>

* Tooltip Provider - Wrapper due to dep upgrade

* public event type list darkmode

* V2 Color changes to public booking

* Remove unused component

* Fix typecheck

* Removed extra buttons on create ET dialog

* ET edit page refactoring

* Avoids form wrapping the whole Shell

* Nitpicks

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Julian Benegas <julianbenegas99@gmail.com>
Co-authored-by: Alan <alannnc@gmail.com>
2022-08-24 14:18:42 -06:00
zomars c17e949cd6 Implements quick ip banlist
Debugs IP banlist

Adds explainer for getIP util

Adds collect-events to middleware filter

Fixes middleware
2022-08-24 10:57:23 -06:00
github-actions[bot]andCrowdin Bot b88f0617d8 New Crowdin translations by Github Action (#3935)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-24 13:41:51 +02:00
Peer Richelsen 6413bb399e hide desktop download link on tablet and mobile (#3939) 2022-08-24 12:38:43 +02:00
bfe780e0af fix add endIconClassName in button (#3893)
* fix add tooltip provider to tooltip

* fix: add endIconClassNames support for button as startIcon has

* fix: undo tooltip provder

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-24 08:37:46 +00:00
zomars 4e73c4f7fb v1.9.1 2022-08-23 09:23:08 -07:00
f4ea385c7f Fixes collective availability for teams with overlapping day timezones (#3898)
* WIP

* Fix for team availability with time offsets

* Prevent empty schedule from opening up everything

* When no utcOffset or timeZone's are given, default to 0 utcOffset (UTC)

* timeZone should not be part of getUserAvailability

* Prevents {days:[X],startTime:0,endTime:0} error entry

* Added getAggregateWorkingHours() (#3913)

* Added test for getAggregateWorkingHours

* Timezone isn't used here anymore

* fix: developer docs url (#3914)

* fix: developer docs url added

* chore : remove /

* chore : import url

Co-authored-by: Zach Waterfield <zlwaterfield@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* Test fixes

* Reinstate prisma (generate only) and few comments

* Test fixes

* Skipping getSchedule again

* Added await to expect() as it involves async logic causing the promise to timeout

* Test cleanup

* Update jest.config.ts

Co-authored-by: Alan <alannnc@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com>
Co-authored-by: Zach Waterfield <zlwaterfield@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-22 23:53:51 +00:00
cb1d881cc0 fix: developer docs url (#3914)
* fix: developer docs url added

* chore : remove /

* chore : import url

Co-authored-by: Zach Waterfield <zlwaterfield@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-22 22:56:55 +02:00
+1 27c5bf9dbc Design issues on success page in some languages (#3900)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Nitesh Singh <nitesh.singh@gitstart.dev>
Co-authored-by: Júlio Piubello da Silva Cabral <julio.piubello@gitstart.dev>
Co-authored-by: Matheus Muniz <87545749+matheusmuniz03@users.noreply.github.com>
Co-authored-by: Matheus Benini <matheus_benini@hotmail.com>
Co-authored-by: Grace Nshokano <grace.devolop@gmail.com>
Co-authored-by: Matheus Muniz <matheusmuniz100@hotmail.com>
Co-authored-by: gitstart <gitstart@gitstart.com>
Co-authored-by: Murilo Amaral <87545137+MuriloAmarals@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-22 22:40:35 +02:00
github-actions[bot]andCrowdin Bot ef7dd5102b New Crowdin translations by Github Action (#3929)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-22 22:36:49 +02:00
github-actions[bot]andCrowdin Bot 0c3e309596 New Crowdin translations by Github Action (#3927)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-22 22:28:56 +02:00
Peer RichelsenandAlex van Andel 1b942c4003 redesigned cancel page to new design (#3923)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-08-22 19:48:33 +00:00
b328527434 fix/auto-connect-calendar-3582 (#3891)
* Added alert when there isn't default calendar connected

* Add default calendar externalId to select placeholder

* Fix typos

* Fixes prisma import

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-22 19:34:28 +00:00
Omar López 662b437a18 Merge branch 'production' into main 2022-08-22 10:32:25 -07:00
github-actions[bot]andCrowdin Bot e7f1413ed8 New Crowdin translations by Github Action (#3926)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-22 17:09:42 +02:00
github-actions[bot]andCrowdin Bot 071b20b6ec New Crowdin translations by Github Action (#3924)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-22 16:09:29 +02:00
github-actions[bot]andCrowdin Bot bf6dd6cb32 New Crowdin translations by Github Action (#3909)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-22 12:59:20 +02:00
Peer Richelsen c44e444271 Revert " cancel booking new design added" (#3922)
This reverts commit a06c564517.
2022-08-22 12:40:41 +02:00
Udit Takkar a06c564517 cancel booking new design added (#3660)
* feat:  cancel booking new design added

* style: add space-y in button

* style: ui fixed for recurring booking

* fix: scroll in recurring event and use translation

* style: text 2xl instead of text-[24px]

* fix: typo, spacing

* fix: replaced multiple h2 tags with div

* fix: padding and Icon name
2022-08-22 12:32:06 +02:00
Julian Benegas 02b5a2bc1f Revert "adjust react version"
This reverts commit 6e161da35b.
2022-08-19 13:23:34 -03:00
Julian Benegas 6e161da35b adjust react version 2022-08-19 13:22:07 -03:00
github-actions[bot]andCrowdin Bot b257cdbf1e New Crowdin translations by Github Action (#3897)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-18 20:18:03 +02:00
zomars 9de723d557 Sync submodules 2022-08-18 11:54:58 -06:00
zomars 081d5ae9c8 NEXTAUTH_DOMAIN isn't used 2022-08-18 11:53:29 -06:00
cddca2b10d New Crowdin translations by Github Action (#3890)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-18 18:10:03 +02:00
Peer Richelsen 6ed0e5e281 use default cursor on desktop (#3876) 2022-08-17 22:50:25 +02:00
github-actions[bot]andCrowdin Bot 1fd8d50e52 New Crowdin translations by Github Action (#3878)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-17 22:50:01 +02:00
Peer Richelsen 5206a37fe4 temporally removed missing calendar badge on event-types (#3889) 2022-08-17 13:51:45 -06:00
Peer Richelsen 025019f789 Update [uid].tsx (#3888) 2022-08-17 19:32:46 +01:00
zomars d58bd02cab Submodule sync 2022-08-17 11:41:08 -06:00
b8acf1e180 Update all Yarn dependencies (2022-07-29) (#3599)
* Update all Yarn dependencies (2022-07-29)

* Adds syncpack config

* Fixes mismatches

* Update yarn.lock

* RRule fixes

* Locking dayjs to fix build

* Type fixes

* Fixes mismatches

* Submodule sync

* Update yarn.lock

* Update event.ts

* Conflict fixes

* Fixes prisma warnings

* Liting

* Upgrade next, zod

* Prevents articfact overwriting

* Yarn fixes

* Jest fixes

* Submodule sync

* Formatting

* Submodule sync

* Adds provider for react-tooltip

* Removed dotenv-cli

* Readds dotenv-cli

* Skips getSchedule tests

Until prisma is mocked properly

* Fixes

* Revert prisma seed script

* E2E fixes

* test

* Removed deprecated req.page in middleware

* Make tests stable

* Unskip getSchedule tests

* fixed 404 logo on cal video (#3885)

* Removed PW aliases as aren't needed anymore

Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-17 11:38:21 -06:00
Peer Richelsen d8fab68edd fixed 404 logo on cal video (#3885) 2022-08-17 16:59:00 +02:00
Hariom Balhara 592d46f758 Fix desktop app link (#3883) 2022-08-17 11:07:19 +02:00
Alex van Andelandzomars a331d02668 Hotfix/dos mitigation attempt error configuration (#3879)
* Fixes 'Task timed out after 60.03 seconds'

* DDoS rewrite fixes

Co-authored-by: zomars <zomars@me.com>
2022-08-16 17:43:01 -06:00
Syed Ali Shahbaz 73e38384e2 hotfix dynamic issue (#3864) 2022-08-16 17:43:01 -06:00
Alex van Andelandzomars f5b5150cf3 Hotfix/dos mitigation attempt error configuration (#3879)
* Fixes 'Task timed out after 60.03 seconds'

* DDoS rewrite fixes

Co-authored-by: zomars <zomars@me.com>
2022-08-17 00:38:26 +01:00
zomars 7e0dbee2ca DDoS rewrite fixes 2022-08-16 16:28:19 -06:00
Syed Ali Shahbaz 46715a6cd4 hotfix dynamic issue (#3864) 2022-08-16 16:07:44 -06:00
Alex van Andelandzomars 1e5cb0bbd0 Attempt at redirect to 404 (#3877)
* Attempt at redirect to 404

404 should be able to handle the traffic no problem - better ideas welcome. Just a temp fix I imagine; we're not going to want to keep this nor can we expect the User-Agent to continue identifying the traffic source.

* Update next.config.js

Co-authored-by: zomars <zomars@me.com>
2022-08-16 16:02:04 -06:00
Alex van Andelandzomars 3a54ca2c95 Attempt at redirect to 404 (#3877)
* Attempt at redirect to 404

404 should be able to handle the traffic no problem - better ideas welcome. Just a temp fix I imagine; we're not going to want to keep this nor can we expect the User-Agent to continue identifying the traffic source.

* Update next.config.js

Co-authored-by: zomars <zomars@me.com>
2022-08-16 16:01:38 -06:00
zomars 79d37676fc Middleware rewrite shenanigans 2022-08-16 13:59:38 -06:00
zomars 4f76654813 Whitelist only cal domain as callbackUrls 2022-08-16 13:55:50 -06:00
zomars 6dcb0c43ab DDOS mitigation updates 2022-08-16 13:50:09 -06:00
Hariom Balhara cf9116b5bb Avoid DDOS (#3871) 2022-08-16 19:15:13 +02:00
github-actions[bot]andCrowdin Bot 4df54ef3d1 New Crowdin translations by Github Action (#3857)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-08-16 13:34:04 +02:00
Jake CooperandPeer Richelsen 82c98a8b7b Update Railway Template (#3862)
* Update Railway Template

* Update URL

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-16 11:30:56 +00:00
Peer Richelsen 0d7be1886e fixed iframe in lark suite, added lark contact info (#3866)
* fixed iframe in lark suite, added lark contact info

* Update _metadata.ts
2022-08-16 13:28:52 +02:00
Hariom Balharaandkodiakhq[bot] bc6c9e1b0a Hotfix: Embed - Fix issue in accessing sessionStorage in certain scenarios (#3851)
* Fixes issue when sessionStorage is not accessible in privacy focussed modes in various browsers

* Fix eslint errors

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-16 04:18:13 +00:00
mohammed hussamandhussamkhatib 732acb5b25 fix: remove redundant AND (#3833)
Co-authored-by: hussamkhatib <hussamkhatib@gmail.com>
2022-08-15 16:35:44 -06:00
Carina WollendorferandCarinaWolli 5b6818a3cc fixes issue with variables not working (#3859)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-08-15 16:32:37 -06:00
Carina WollendorferandCarinaWolli 497d4902af fixes issue with variables not working (#3859)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-08-15 16:32:11 -06:00
Udit Takkar 8c7579fede fix: padding of kBarTrigger (#3846) 2022-08-15 16:31:27 -06:00
4ce6b91a79 Close.com App (#3709)
* WIP close.com app

* Removing leaked dev key (now invalid)

* Misspelled env variable

* Making progress still WIP

* Progress + tests

* Final touches

* More unit tests

* Finished up tests

* Merge main

* Removing unneeded stuff + submodules

* Removing static props, fields fix

* Removing unneeded stuff p2

* Commenting

* Standarizing APIs

* Zodifying

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-15 20:45:15 +00:00
zomars 8d0caa522e v1.9.0 2022-08-15 14:24:26 -06:00
89510e6af6 Zapier Trigger: After Meeting ends (#3827)
* add new trigger with first simple job scheduling

* fix DB update

* use array to save scheduled jobs in booking

* cancel scheduled jobs when zap disabled or zapier disconnected

* schedule jobs only for confirmed bookings

* schedule jobs for already existing bookings

* fix bug to create workflow reminders when confirming recurring events

* delete remove all zapier webhooks when api key is deleted

* schedule job for all confirmed recurring bookings

* fix zapier trigger and workflow reminders when cancelling recurring events

* code clean up

* code clean up

* add migration

* add type package for node-schedule

* remove nodescheduler

* add updated nodescheduler

* move code to app-store

* add meeting ended to webhook constants

* udpate zapier README.md

* implement QA suggestions

* add default handler and fix imports

* Type fix

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2022-08-15 20:18:41 +00:00
Alex van Andel 297a965508 Bugfix/i3531 round robin assigns to unavailable members (#3813)
* wip commit

* Finished new algorithm for fetching the least recently booked user

* ROUND_ROBIN fix

* Removed redundant import

* Prisma dependency turned getLuckyUser into a server-only function

* DRY avatars

* Properly passThrough

* name can be undefined.

* Remove debug artefact
2022-08-15 13:52:01 -06:00
Udit Takkarandkodiakhq[bot] c644a10688 fix: css for location (#3744)
* fix: css for location

* fix: recurring icon positioning

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-15 13:35:48 -06:00
Jatin Ranka 8ff762de3e Feat: make locations dropdown searchable (#3858) 2022-08-15 13:18:34 -06:00
Alex van Andel fb2ed0b5ad Bring back Dropdown used to copy (#3843) 2022-08-15 18:03:24 +00:00
Alex van Andel 358d733b5f Allow scrolling when the dialog exceeds screen height (#3850) 2022-08-15 16:22:58 +00:00
Peer Richelsen 22a4a1b2ab added lark screenshots and youtube video (#3839) 2022-08-13 22:03:51 +02:00
Peer Richelsen bcd80eab34 fixed back button on desktop (#3838) 2022-08-13 21:42:32 +02:00
Hariom Balharaandkodiakhq[bot] c3fbf8224b Feature: Routing Forms Typeform App and other improvements (#3625)
* Add Embed ModalBox for routing forms

* Add duplicate form support

* Fix duplication logic

* Change to feathericons everywhere and other fixes

* Dont allow routes for fallback route

* Fix all TS issues

* Fix tests

* Support routing using query params

* Support multiselect in router endpoint

* Fix the issue where app goes in embed mode after viewing embed once

* Add router url tests

* Add Responses download and form toggling tests

* Add required validation test

* Change Icons everywhere

* App typeform app

* Improvements in cli

* Add typeform how-to-use page

* Add typeform how-to-use page and screenshots

* Fix TS error

* Add missing image

* Update CliApp.tsx

* Revert unexpected zapier change

* Revert yarn.lock, not sure why it was modified

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-13 11:04:57 +00:00
Will GittoesandSyed Ali Shahbaz 4cb5a56d41 Fix early return when expanding RRULE in CalDav/iCal (#3665)
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
2022-08-12 15:28:45 -06:00
5e013d5864 Fixes issues with video location links from apps (#3760)
* fix issue with video apps link not saved as location

* use link as location for ping.gg

* fix around link in availability page + allow breaking line for locations

* use find instead of filter to get the first item

Co-authored-by: Omar López <zomars@me.com>

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2022-08-12 14:46:40 -06:00
zomars d90a431dcc Adds actions to cleanup preview DBs 2022-08-12 14:40:48 -06:00
ee02112a7c Dynamic Links re-integrate with availability logic (#3687)
* -re init dynamic links

* typing fix 001

* added missing div closing tag

* added necessary DB column pull to satisfy Type errors

* further type fixes

* WIP

* removed console logs

* some revert

* WIP

* another approach

* enabled dynamic links availability fetch

* Added users to eventTypeObject for consistency

* WIP: Moving user and changing map item name

* Fix user list call

* Removed explicit User type in map

* modify default user attributes

* adds explicit users to EventTypeObject in teams

* Updated availability page

* Updates Availability

* Futher availability change

* Remove explicit user type from slot router

* more fixes

* more fixes WIP

* cleaning up more errors WIP

* object assign used for typesafety

* added check if dynamic booking is allowed by all users

* cleaned up console logs

* clean up

* Improvement

* resolving suggestions by alex

* changes requested by Omar

* Filter out empty usernames instead of accepting null

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-12 19:29:29 +00:00
Alex van AndelandOmar López 870f70fc38 Imports performance explicitly for Node v14 (#3823)
* Imports performance explicitly for Node v14

* Update packages/trpc/server/routers/viewer/slots.tsx

* Adds missing performance imports

* Update turbo.json

Co-authored-by: Omar López <zomars@me.com>
2022-08-12 18:18:13 +00:00
zomars cc48b87fa3 Merge branch 'main' of https://github.com/calcom/cal.com 2022-08-12 11:50:16 -06:00
zomars a839cf7f59 Adds symlink to use DATABASE_URL from root 2022-08-12 11:23:30 -06:00
mohammed hussamandAlex van Andel 935491c70f migrate api/availability/[user] to viewer.availability.user in trpc (#3591)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-08-12 11:16:55 -06:00
zomars 62c168176d Adds symlink to use DATABASE_URL from root 2022-08-11 19:53:16 -06:00
zomars 50a20e2c3b Clarifies new db vs old db 2022-08-11 18:43:59 -06:00
zomars f28a1312a6 chmod vercel script 2022-08-11 18:31:30 -06:00
zomars 4c89a64f0e Adds script to generate dummy DB per preview 2022-08-11 18:29:51 -06:00
Leo Giovanetti f57726dc95 Hotfix: Signup fix error not shown (#3815)
* Fix error not shown

* Simplifying

* Removing dead code
2022-08-11 23:48:58 +00:00
Omar Lópezandkodiakhq[bot] a2a5d48037 Upgrade turborepo v4 (#3804)
* Upgrades to turborepo 4

Adds turbo eslint config

* Linting according to turbo eslint plugin

* Add missing variables to turbo config

* Adds more missing env vars to turbo json

* Update turbo.json

* Update turbo.json

* Matches local lint with CI lint

* Update turbo.json

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-11 13:17:56 -06:00
Syed Ali Shahbaz 870cb1f872 adds attendee (#3808) 2022-08-11 11:16:44 -06:00
Omar Lópezandkodiakhq[bot] accf845f0e Allows tree shaking unused modules (#3752)
* Allows tree shaking unused modules

* don't tree shake embed-core side effects

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-11 10:36:30 -06:00
Pavel Shapelandzomars 6d79f80928 refactor: use BookingReference instead of DailyEventReference (#3667)
* refactor: use BookingReference instead of DailyEventReference

* refactor: migrate DailyEventReference records to BookingReference

* refactor: drop DailyEventReference table

* fix linting

* Daily Video API adapter fixes

Co-authored-by: zomars <zomars@me.com>
2022-08-10 18:53:05 -06:00
Udit TakkarandCarina Wollendorfer 14f0c30584 fix: error message for riverside and whereby added (#3751)
* fix: error message for riverside and whereby added

* fix: around and ping error message added

Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
2022-08-10 15:13:40 -04:00
zomars 4bfa63e804 Submodule sync 2022-08-09 17:37:08 -06:00
d363f6e2f6 Fixes security issue when updating workflows (#3661)
* check if workflow is deleted before deleting reminders

* disable continue button when mutation is loading

* check if new active event types belong to user

* fix issue with onCascade deletion

* Simplified ANDs

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-09 23:27:49 +00:00
zomars e8d6d50bc2 v1.8.5 2022-08-09 16:56:53 -06:00
9221042db4 feat: signin test email magic signup in app (#3749)
* feat: signin test email magic signup in app

* fix: no signIn page in nextauth

* fix: remove commented signIN

* Update apps/web/pages/auth/signin.tsx

remove import useRouter

Co-authored-by: Omar López <zomars@me.com>

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2022-08-09 15:38:21 -06:00
alannncandOmar López b936b7c256 Fix url redirect to a only path redirect when joining a team (#3757)
* fix full url redirect to a only path redirect

* Remove string templates

Co-authored-by: Omar López <zomars@me.com>

Co-authored-by: Omar López <zomars@me.com>
2022-08-09 15:19:44 -06:00
Udit TakkarandCarina Wollendorfer 57869f0b88 fix: cancel booking buttons design (#3748)
* fix: cancel booking buttons design

* chore: remove rounded

Co-authored-by: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com>
2022-08-09 14:23:55 -04:00
alannnc 7a4795bdbf Fix request-reschedule for team events (#3721) 2022-08-09 11:23:12 -06:00
Peer Richelsen 773bb5424b Update README.md 2022-08-09 15:55:48 +02:00
Peer Richelsen 2c600cff43 Update README.md 2022-08-09 15:55:04 +02:00
Omar Lópezandsean-brydon 0eeee42811 Adds middleware to get V2 early access (#3617)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-08-09 10:21:15 +01:00
Udit Takkarandkodiakhq[bot] 8eb45ee1eb fix: remove mt (#3740)
* fix: remove mt

* fix: un comment icon

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-09 04:49:46 +00:00
Alex van AndelandLeo Giovanetti 87d4afea13 Same-day schedules created invalid workingHours (#3742)
* Same-day schedules created invalid workingHours

* Uncomment logger

* Previous version did not properly substract the days

Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-08-08 14:17:33 -06:00
Peer Richelsenandzomars 7776bbbf52 added a few desktop only improvements (#3725)
* added a few desktop only improvements

* added horizontal line

* fixed icon

* hide download button when already in desktop app

* codacy fixes

Co-authored-by: zomars <zomars@me.com>
2022-08-08 13:39:51 -06:00
88384192f8 Fixes bug when changing the location of a booking (#3585)
* use correct booking

* delete calendar event and update booking reference

* use middleware to get booking

* updating event instad of deleting and creating a new one

* fix issue with google hangout link

* remove unsed imports

* Apply suggestions from code review

* Update bookings.tsx

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-08 19:38:02 +00:00
zomars f036f0fb64 RHF conditionals fixes
Improved legibility
2022-08-08 13:24:49 -06:00
Ilya KatzandJoe Au-Yeung d0f34aa699 Update instructions for integration with google calendar (#3558)
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
2022-08-08 11:06:53 -04:00
+2 507f5d028e Setup Wizard Not Pulling Timezone (#3677)
Co-authored-by: Nitesh Singh <nitesh.singh@gitstart.dev>
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Matheus Benini <matheus_benini@hotmail.com>
Co-authored-by: Grace Nshokano <grace.devolop@gmail.com>
Co-authored-by: Matheus Muniz <87545749+matheusmuniz03@users.noreply.github.com>
Co-authored-by: gitstart <gitstart@gitstart.com>
Co-authored-by: Murilo Amaral <87545137+MuriloAmarals@users.noreply.github.com>
Co-authored-by: Júlio Piubello da Silva Cabral <julio.piubello@gitstart.dev>
Co-authored-by: Matheus Muniz <matheusmuniz100@hotmail.com>
Co-authored-by: Justine Nakitto <justinejjingo@gmail.com>

Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Nitesh Singh <nitesh.singh@gitstart.dev>
Co-authored-by: Matheus Benini <matheus_benini@hotmail.com>
Co-authored-by: Grace Nshokano <grace.devolop@gmail.com>
Co-authored-by: Matheus Muniz <87545749+matheusmuniz03@users.noreply.github.com>
Co-authored-by: gitstart <gitstart@gitstart.com>
Co-authored-by: Murilo Amaral <87545137+MuriloAmarals@users.noreply.github.com>
Co-authored-by: Júlio Piubello da Silva Cabral <julio.piubello@gitstart.dev>
Co-authored-by: Matheus Muniz <matheusmuniz100@hotmail.com>
Co-authored-by: Justine Nakitto <justinejjingo@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-08 12:19:11 +00:00
Leo GiovanettiandPeer Richelsen 477c411611 Updating website to latest (#3731)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-08 11:05:44 +02:00
alannncandkodiakhq[bot] 3652ffa40a Added notes for running tests for embed-core (#3720)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-08 08:06:44 +00:00
Peer Richelsenandsean-brydon 1332b76441 added ping.gg app (#3728)
* added ping.gg app, not sure why its not showing

* nit

* Fixes

* fixed email

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-08-08 05:57:09 +00:00
Peer Richelsen 1a3aaa134e Update README.md 2022-08-07 19:45:32 +02:00
Peer Richelsen af06ded584 Update README.md 2022-08-07 19:44:31 +02:00
Peer Richelsen 2f9862bb47 fixed icons (#3730) 2022-08-07 14:29:07 +02:00
zomars 22d3fb7e92 Adds verify page 2022-08-05 21:09:52 -06:00
zomars 3ed206df23 Squashed commit of the following:
commit c378c647fe4822071cbdfc577fcfc950e53973df
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 17:36:21 2022 -0600

    Cleanup

commit a89cc7981df1c2aae96188466833490eb3b227a1
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 17:17:57 2022 -0600

    redirect fixes

commit a27979c2b3f06c9956ee9abfef1e82a5558b6411
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 17:02:33 2022 -0600

    Fingers crossed

commit c08a09e8d2ba3eb2561f418bb3b0370245f79bf7
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 16:28:55 2022 -0600

    Update [...nextauth].tsx

commit 4063bddb2ea3cbf3dda6be6cc10070ecc1eb578c
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 16:05:21 2022 -0600

    Submodule sync

commit e44dc73a3b751ba4cacc85abfe6680a668393c0d
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 16:05:06 2022 -0600

    Upgrade next-auth

commit 2b36e0a1b376083739ea06b793f1523e2f158a33
Author: zomars <zomars@me.com>
Date:   Fri Aug 5 15:23:03 2022 -0600

    Magic signup fixes

commit 2cc81ca7e2f79a4e3fcab370e23ac29cbe3ee18d
Author: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Date:   Thu Aug 4 11:49:51 2022 -0400

    Properly parse list calendar call to MS Graph (#3698)

commit 65887d8f9db8b399964fce38ec104ed24fcc48e6
Author: Leo Giovanetti <hello@leog.me>
Date:   Thu Aug 4 12:52:50 2022 -0300

    Fix app-store seeding (#3693) (#3697)

    Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

    Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
    Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

commit 71594b962352519c4ed4ee6cf68d16aac9b71e26
Author: Leo Giovanetti <hello@leog.me>
Date:   Wed Aug 3 16:48:07 2022 -0300

    fixed dark mode profile page (#3650) (#3681)

    * fixed dark mode profile page

    * nit

    Co-authored-by: Peer Richelsen <peeroke@gmail.com>

commit 78a5ae988274ff05f26309033821acc48e22823d
Author: Leo Giovanetti <hello@leog.me>
Date:   Wed Aug 3 14:05:02 2022 -0300

    Potential fix (#3671) (#3676)

commit b006240b0c62e9e62944cb7184793f099358e2ec
Merge: 6179b3fbe e7418f68a
Author: zomars <zomars@me.com>
Date:   Mon Aug 1 18:20:47 2022 -0600

    Merge branch 'main' into production

commit 6179b3fbe06709f1cf3a4e54214a7dbb1543765e
Author: zomars <zomars@me.com>
Date:   Mon Aug 1 18:20:40 2022 -0600

    Fixes successRedirectUrl validation

commit 14443099e0377e8d9af52f53f15c2f8b91b784d2
Author: zomars <zomars@me.com>
Date:   Mon Aug 1 17:59:47 2022 -0600

    successRedirectUrl fixes
2022-08-05 18:08:05 -06:00
ff3bd5fc61 Event description now supports markdown formatting (#3688)
* yarn

* yarn update

* added Mardown style formatting with sanitized inputs

* Revert "yarn"

This reverts commit 46eb3595cf687504c6783315749b3124936080b9.

* Revert "yarn"

This reverts commit 46eb3595cf687504c6783315749b3124936080b9.

* Revert "yarn update"

This reverts commit f4600d83a67b930c6dd72e292827578856ca5428.

* Revert "yarn"

This reverts commit 46eb3595cf687504c6783315749b3124936080b9.

* Revert "yarn update"

This reverts commit f4600d83a67b930c6dd72e292827578856ca5428.

* Revert "Revert "yarn update""

This reverts commit 8ccab5ee237fb228115229f3c89cf4b848bc9449.

* Revert "Revert "yarn""

This reverts commit 78a755eb39cb518eb0526272a3c11882c48004de.

* yarn.lock removed

* Parses using prisma middleware

* Reverting changes

* Fixes hydration warning

* Fixes Dom warnings

* Update yarn.lock

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-05 18:44:30 +00:00
be16b72400 feat: support lark calendar (#3019)
* feat: support lark calendar

* New Crowdin translations by Github Action (#3016)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* fix: lark calendar get app ticket bugs

* feat: add send msg service for lark bot

* fix: comment on PR of lark-calendar

* chore: update lark bot message

* Refactors add endpoint

* Adds missing GET endpoint handler

* Update yarn.lock

* fix: comments

* Update yarn.lock

* fix: comment about inferred type

* Added fetcher helper

* Update yarn.lock

Co-authored-by: chengcheng.frontend <chengcheng.frontend@bytedance.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-05 17:56:20 +00:00
775fe92960 Fix bug for reschedule on opt-in bookings (#3678)
* Fix bug for reschedule on opt-in bookings

* Fix a missing query parameter being removed when changing month, useRouterQuery

* Added test for rescheduling user type condition

* Fix conditional that triggers input disabling when rescheduling

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2022-08-05 17:08:47 +00:00
Omar López 70d6c8d8e7 Cleans up cli generator and enables prettier formatting (#3718) 2022-08-05 17:41:26 +01:00
Udit Takkar f589d06ed4 fix: icon positioning (#3715) 2022-08-05 20:33:27 +05:30
Udit TakkarandPeer Richelsen 2b7b03fffd fix: group hover bug (#3699)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-05 09:07:06 +00:00
a53ca3389c updates to all public booking pages (#3648)
* updates to all public booking pages

* sidebar tweak

* resolving error

* Fix linting errors

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-05 08:46:44 +00:00
Hariom Balhara 85764b6aa6 Embed Test: Verifies that app remains hidden till link is ready (#3669)
* Add test to verify that webapp remains hidden till link is considered ready

* Make tests more stable
2022-08-05 08:26:15 +00:00
Hariom Balhara ee767a3e41 Fix textarea dark theme (#3712) 2022-08-05 07:32:21 +00:00
Leo Giovanetti 414233961c Fixing App tabs routing (#3711)
* Removing linkProps

* Fixing format
2022-08-05 05:21:43 +00:00
Leo Giovanetti 7747b3d9a0 Adding debugging info (#3706) 2022-08-04 16:55:20 -03:00
Udit Takkar da638c4b1b fix: made add-to-calendar responsive (#3703) 2022-08-04 13:27:04 -06:00
218c3d7b50 fix heroku build (#3630)
* pick https://github.com/nosovk/cal.com/pull/1

* make all devdeps to devDependencies

* add more ENV to Heroku config
https://github.com/calcom/cal.com/pull/3630

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-08-04 11:44:29 -06:00
Joe Au-Yeung 37309e8435 Properly parse list calendar call to MS Graph (#3698) 2022-08-04 16:49:51 +01:00
Hariom Balharaandkodiakhq[bot] 2aee450c0b Fix app-store seeding (#3693)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-04 14:15:23 +00:00
Carina Wollendorfer ca7a78dcda Improve design of workflow reminder email (#3685) 2022-08-04 08:52:05 +00:00
fc4b88e222 New Crowdin translations by Github Action (#3689)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-08-04 10:39:19 +02:00
github-actions[bot] affedd1014 New Crowdin translations by Github Action (#3683) 2022-08-04 09:25:24 +01:00
Carina Wollendorfer 4240235cb8 make edit button full width (#3686) 2022-08-04 09:23:36 +01:00
2a73fd8188 Variables for custom templates in workflows (#3602)
* improve functionality to update a step

* remove console logs

* fix issue with active event types

* allow null value for time and timeUnit

* sort steps asc step number

* add action to workflow (frontend)

* add  phone number input for SMS to specific number

* use PhoneInput for number input + input validation

* improve invalid input for phone number

* improve UI of phoneInput

* Improve design and validation

* fix undefined error

* set default action when adding action

* include all team event types

* fix phone number input for editing steps

* fix update muation to add steps

* remove console logs

* fix order of steps

* functionality to delete steps

* add trigger when event is cancelled

* add custom email body

* sms and email reminder updates

* add custom emails

* add custom email subject

* send reminder email to all attendees

* update migration

* fix default value for time and timeUnit

* save email reminders to database

* clean code

* add custom template to SMS actions

* schedule emails with sendgrid

* clean code

* add workflow templates

* keep custom template saved when changing templates

* create reminder template for email

* add dot at the end of sentace for email template

* fix merge error

* fix issue that template was not saved

* include sending emails for when event is cancelled

* fix bug that email was always sent

* add templates to sms reminders

* add info that sending sms to attendees won't trigger for already exisitng bookings

* only schedule sms for attendees when smsReminderNumber exists

* only schedule sms for attendees when smsReminderNumber exists

* set scheduled of workflow reminder to false when longer than 72 hours

* add cron for email scheduling + fixes for for sms an email scheduling

* adjust step number when deleting a step

* cast to boolean with !!

* update cron job for email reminders

* update sms template

* send reminder email not to guests

* remove sendTo from workflow reminder

* fixes sending sms without name + removing sendTo everywhere

* fix undefined name in sms template

* set user name to undefined for sending sms to a specific number

* fix singular and plural for time unit

* set to edit mode when changing action and custom template is selected

* delete reminders when booking cancelled or not active anymore

* fix type errors

* fix error that deleted reminders twice

* create booking reminders for existing bookings when eventType is set active

* improve email and sms templates

* use BookingInfo type instead of calendarEvent for reminder emails

* schedule emails for already existing bookings

* add and remove reminders for new active event types and cancelled events

* connect add action button with last step

* fix step container width for mobile view

* helper functions that return options for select

* fix typo and remove comment

* clean code

* add/improve error messages for forms

* fix typo

* clean code

* improve email template

* clean code

* fix missing prop

* save reference id when scheduling reminder

* fix step not added because of changed id for new steps

* small fixes + code cleanup

* code cleanup

* show error message when number is invalid

* fix typo

* fix phone number input when location is already phone

* set multi select checkbox to read only

* change email scheduling in cron job from 7 days to 72 hours

* show active event types in workflow list

* fix trigger information for workflow list

* improve layout for small screens in workflow list

* remove optional from zod type for workflow name

* order workflows by id

* use link icon to show active event types

* fix plural and add translation for showing nr of active eventtypes

* fix text for sms reminder template

* add reminders for added steps

* remove optional for activeOn

* improve reminder templates

* improve design of custom input fields

* set edit mode to false when phone number isn't needed anymore

* set sendTo in workflow step only for SMS_NUMBER action

* set email body and subject only when custom template

* only delete reminders that belong to workflow steps

* improve text for new event book trigger

* move reminders folder to workflows

* fix issue that save button was sometimes enabled in edit mode

* fix form issues for send to

* delete all scheduled reminders when workflow is deleted

* use enum for method

* fix imports for workflow methods

* add missing import

* fix edit mode

* create reminders when event is confirmed

* add reminderScheduler to reduce duplicate code

* make workflow enterprise and pro only feature

* move all files to /ee/ folder

* move package.json change to /ee/ folder

* add pro badge to shell

* set to edit mode to true if email subject is missing when action changes

* fix loading bug

* add migration

* fix old imports

* don't schedule reminders for opt-ins

* fix style of email body

* code clean up

* Update yarn.lock

* fix isLoading for active on dropdown

* update import for prisma

Co-authored-by: Omar López <zomars@me.com>

* update imports

* remove console

* use session to check if user has valid license

* use defaultHandler

* clean up code

* Create db-staging-snapshot.yml

* move LisenceRequired inside shell

* update import for FormValues

* fix phone input design

* fix disabled save button for edit mode

* squah all migration into a single one

* use isAfter and isBefore instead of isBetween

* import dayjs from @calcom

* validate phone number for sms reminders when booking event

* Allows auto approvals for crowdin

* add dropdown for adding dynamic variables to string

* use lighter text colour for disabled button

* change textarea for email subject to one row only

* add function to create custom template with dynamic variables

* add location to dynamic variables

* add missing locations to custom template

* add variables at cursor position

* remove second curly brakets from variables

* code cleanup

* fix names for attendee and organizer

* enable internationaliztion for custom reminders

* disabled add workflow button when mutation is loading

* fix translation keys

* internationalize dates

* code clean up

* add translation for email subject

* skip translation for english

* remove language from BookingInfo type

* add additional notes as variable

* add custom inputs as variables

* add information for custom inputs

* add translation

* Add formated variables in additional input information

* fix type errors

* code clean up

* Update AddVariablesDropdown.tsx

* Update variableTranslations.ts

* Update variableTranslations.ts

* Formatting

* Update [workflow].tsx

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-03 22:22:38 +00:00
e878e1a665 Fix/api build (#3675)
* fix: shared next-auth calendso session type fix

* fix: move imports from @lib -> @calcom/lib to fix types

* Consolidates next-auth definitions

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: zomars <zomars@me.com>
2022-08-03 13:18:26 -06:00
298a6d5e15 Tweaks for Website signup form (#3635)
* WIP, only deep testing needed

* Feedback suggestions

* Uses early returns instead

* Allows overriding t function via prop

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-08-03 13:59:40 -03:00
sean-brydon 532723fb41 Update V2 components + Move to react-icons (#3670) 2022-08-03 16:01:29 +00:00
b3b82fa1cf When no location, defaults to cal video (#3517)
* yarn

* fixed bug

* fixed warning

* fixed problem on server side

* yarn update

* Delete yarn.lock

* removed unused type

* Revert "Delete yarn.lock"

This reverts commit 4fe99af4757343d9efb2326be546cd81161c8da3.

revert delete yarn.lock

* Delete yarn.lock

* Revert "Delete yarn.lock"

This reverts commit 9f76a548e0950202674e5c5fcb755db3ff7867bd.

revert delete yarn.lock

* Revert "yarn update"

This reverts commit 2bef496c1693acd509a7b577ca7013e94ab7200a.

* yarn

* remove yarn.lock

* remove yarn.lock

* removed double declaration

* Revert "yarn update"

This reverts commit 2bef496c1693acd509a7b577ca7013e94ab7200a.

* stop tracking yarn lockfile

* undo all yarn lockfile changes

* Revert "yarn"

This reverts commit 46eb3595cf687504c6783315749b3124936080b9.

* remove all yarn changes

* Update packages/trpc/server/routers/viewer/bookings.tsx

Co-authored-by: Omar López <zomars@me.com>

* zod transform insteead of ternary operator

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-08-03 09:35:08 -06:00
Leo Giovanetti 48a1f22ca5 Potential fix (#3671) 2022-08-03 15:23:01 +00:00
Peer Richelsen 77bf1d0712 Update README.md 2022-08-03 14:38:11 +02:00
Peer Richelsen 23c79fff75 Update README.md 2022-08-03 14:37:45 +02:00
Peer Richelsen abea19ad39 Update LICENSE 2022-08-03 14:36:43 +02:00
Peer Richelsen 5ca2d7cae2 Update LICENSE 2022-08-03 14:36:32 +02:00
Adam Garbowski 3ac140fad5 [Proposal] Event type error popover proposal (#3627) 2022-08-03 09:03:01 +00:00
Heiki 5358e5848d feat(troubleshoot): add event titles to the troubleshoot page (#3434) (#3437) 2022-08-03 09:19:16 +02:00
6301ea16f8 Avoid duplicating any video credential (#3593)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: alannnc <alannnc@gmail.com>
2022-08-02 12:52:21 -06:00
alannnc e767d233ad Fix/google calendar false alert (#3636) 2022-08-02 18:07:45 +00:00
Peer Richelsen 7480a73905 fixed dark mode profile page (#3650)
* fixed dark mode profile page

* nit
2022-08-02 18:59:33 +02:00
Agusti Fernandez Pardo fe50b8de18 fix: cleanup onboarding username (#3638) 2022-08-02 10:33:21 -06:00
Agusti Fernandez Pardo fd8b323e47 fix: base_url for login link should be WEBAPP_URL not WEBSITE_URL (#3637) 2022-08-02 10:05:09 -06:00
Leo Giovanettiandkodiakhq[bot] 760026b2e6 Correcting syntax of overloading (#3598)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-02 05:52:25 +00:00
zomars 53de4ddaaf Fixes successRedirectUrl
commit b006240b0c62e9e62944cb7184793f099358e2ec
Merge: 6179b3fbe e7418f68a
Author: zomars <zomars@me.com>
Date:   Mon Aug 1 18:20:47 2022 -0600

    Merge branch 'main' into production

commit 6179b3fbe06709f1cf3a4e54214a7dbb1543765e
Author: zomars <zomars@me.com>
Date:   Mon Aug 1 18:20:40 2022 -0600

    Fixes successRedirectUrl validation

commit 14443099e0377e8d9af52f53f15c2f8b91b784d2
Author: zomars <zomars@me.com>
Date:   Mon Aug 1 17:59:47 2022 -0600

    successRedirectUrl fixes
2022-08-01 18:45:47 -06:00
zomars e7418f68a4 Submodule sync 2022-08-01 17:44:40 -06:00
zomars 3ae4655449 v1.8.4 2022-08-01 17:42:06 -06:00
zomars 299f69aa7b Fixes successRedirectUrl 2022-08-01 17:20:06 -06:00
c1896fc833 Feat/onboarding username (#3580)
* fix: remove duplicate button in textusernamefield

* feat: adds username if not present in getting-started first onboarding step

* fix: credentials

* fix: typo

* fix: user type

* fix: type errors

* Validates successRedirectUrl earlier with zod

* Removes deprecated api endpoint

* Reduces the data needed for the frontend on onboarding

Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-08-01 15:44:08 -06:00
zomars 54acf6d28f Sorts root scripts and adds prisma alias 2022-08-01 13:50:30 -06:00
Joe Au-Yeung 7e8f13148e Fix app id when creating credential (#3629) 2022-08-01 13:25:04 -06:00
b42f0ffadd Fixes unique constraint error of batchId when scheduling emails (#3542)
* make batchid unique + return response status 200

* use correct batchId

* change for loop and updateMany

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-01 10:20:21 +00:00
Hariom Balharaandkodiakhq[bot] 9346ae644f Use non shallow mode (#3620)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-08-01 09:40:38 +02:00
d6fd9b5df3 Hide dropdown under modal dialog (#3607)
Co-authored-by: Adam Garbowski <adamgarbowski90@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-31 21:48:17 +02:00
github-actions[bot]andCrowdin Bot 529adc4137 New Crowdin translations by Github Action (#3609)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-31 10:27:04 +02:00
Omar Lópezandkodiakhq[bot] c9d7412a43 Refactors twilio provider (#3604)
Prevents multiple twilio redeclarations

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-30 16:02:34 +00:00
Carina WollendorferandCarinaWolli dba48ab852 fix design issue (#3606)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-07-30 15:49:01 +00:00
0bca141b74 Fix last day of month handling logic in tests (#3605)
* Fix last day of month handling logic

* Update apps/web/test/lib/getSchedule.test.ts

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/test/lib/getSchedule.test.ts

* Update apps/web/test/lib/getSchedule.test.ts

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-07-30 09:33:32 -06:00
a4e91a0666 Improved German locale (#3521)
Improved and corrected the grammar and wording.

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-30 16:56:43 +02:00
mohammed hussam 8efb98698d change prerequistic of node.js from min 14.x to 15.x (#3587) 2022-07-30 16:54:42 +02:00
Peer Richelsen 1403a567ec nit change to readme 2022-07-30 15:25:00 +02:00
Peer Richelsen bd6a84e986 added figma design system and help wanted shields to readme 2022-07-30 15:24:33 +02:00
Peer Richelsen bd41d9d5f0 added help wanted project board 2022-07-30 15:15:42 +02:00
github-actions[bot]andCrowdin Bot 7e7938a4d9 New Crowdin translations by Github Action (#3569)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-30 10:15:04 +02:00
zomars 2f03f18447 Fixes missing import 2022-07-29 22:34:57 -06:00
zomars 2b054862df Uses ISR on setup pages 2022-07-29 22:04:59 -06:00
zomars 382f11f740 Update [status].tsx 2022-07-29 21:52:43 -06:00
zomars 920050022a Update WebhookListContainer.tsx 2022-07-29 21:52:43 -06:00
zomars 95a0496f32 Type fixes 2022-07-29 21:52:43 -06:00
zomars 1ac36882ac Update Kbar.tsx 2022-07-29 21:52:43 -06:00
zomars a4b8cc8391 Fixes dotenv replacements 2022-07-29 19:30:02 -06:00
zomars e7a91d4594 Squashed commit of the following:
commit e84ca3c1fcb625f8cde160b31c1f2b5def78e0bf
Author: zomars <zomars@me.com>
Date:   Thu Jul 28 14:10:57 2022 -0600

    fix

commit 29025a1104c2853597b5f3abd0d26aaa27a76aa2
Author: zomars <zomars@me.com>
Date:   Thu Jul 28 14:10:04 2022 -0600

    Force vercel deploy

commit b070a6460cf871488340a22d71c14962f37e7023
Author: Hariom Balhara <hariombalhara@gmail.com>
Date:   Thu Jul 28 19:03:07 2022 +0530

    Avoid global variables leak by making the entire code IIFE (#3543) (#3568)

    Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

    Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>

commit f05c7c40829947aefb0c67b931420bca18b79b29
Author: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
Date:   Wed Jul 27 16:19:59 2022 -0400

    Add axiom to next config (#3556)

commit c3d05e86862277c270557bab98e170cc8b051afe
Author: Hariom Balhara <hariombalhara@gmail.com>
Date:   Wed Jul 27 14:12:09 2022 +0530

    Potential fix, broken workflow (#3545)

commit 36e1c9272fa9b86cbe9e53e03e83799820674f17
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 18:27:57 2022 -0600

    Update [schedule].tsx

commit f39535feea22a11a857d179f3506803602a95728
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 18:07:30 2022 -0600

    Update [status].tsx

commit c3ac1bcc8c7ff8dc7ebf178d23a6e5c7ea223749
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:53:43 2022 -0600

    Update [schedule].tsx

commit 39364d8476b3c582d4a7fe3f8d139c5d254e3ecf
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:43:13 2022 -0600

    Debugging prod

commit 4b428d22dec734dab19096b4fe07741f18e5bc5d
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:20:44 2022 -0600

    Update checkLicense.ts

commit 4212e6d61908face52d647bb661d71db959cf864
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:11:37 2022 -0600

    Booking fixes attempt

commit e3160027ea0ce40d129b445daeb3bb17711ac640
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 13:52:35 2022 -0600

    migration conflict fixes
2022-07-29 19:28:54 -06:00
Sagar 54c8c294fc Fix Deploy with Vercel and add note and build commands and root directory (#3590) 2022-07-29 18:49:15 -06:00
zomars 49f584a956 Fixes tailwind for EE code 2022-07-29 16:26:31 -06:00
Adam Garbowski 67f72223bf Fix broken getLocaleFromHeaders import (#3592) 2022-07-29 08:28:53 -06:00
Peer Richelsen 534efe53fe added status.cal.com badge 2022-07-29 15:47:44 +02:00
Leo Giovanetti 5437005c7e UI tweaks (#3576) 2022-07-29 15:23:54 +02:00
zomars b931cf2d7c Submodule sync 2022-07-28 14:25:38 -06:00
Omar Lópezandkodiakhq[bot] 464343f5ab Refactors EE code (#3490)
* WIP

* WIP

* Type and migration fixes

* Adds missing default import

* Fixes import

* Fixes tRPC imports in App Store

* Migrate stripe helpers

* WIP

* Type fixes

* Type fix?

* WIP

* WIP

* Update index.ts

* Fixes

* Update workflow.tsx

* Moved queries to lib

* Moves QueryCell

* Migrates MultiSelectCheckboxes

* WIP

* CryptoSection type fixes

* WIP

* Import fixes

* Build fixes

* Update app-providers.tsx

* Build fixes

* Upgrades hookform zod resolvers

* Build fixes

* Cleanup

* Build fixes

* Relocates QueryCell to ui

* Moved List and SkeletonLoader

* Revert QueryCell migration

* Can't use QueryCell here

* oops

* CryptoSection cleanup

* Update app-providers.tsx

* Moved ee to features

* ee to features/ee

* Removes @calcom/ee

* Adds possible feature locations

* Build fixes

* Migrates stripe to app-store lib

* Colocates stripe imports

* Update subscription.ts

* Submodule sync

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-28 13:58:26 -06:00
Bailey Pumfleet 84b4bb397f Improve help dialog strings (#3570) 2022-07-28 15:54:48 +00:00
Muhammad AliandBailey Pumfleet b90cf96ab9 Fix: Doc typo fix in coding styling (Developer docs) (#3533)
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2022-07-28 15:56:42 +01:00
github-actions[bot]andCrowdin Bot 5d61d2d79b New Crowdin translations by Github Action (#3539)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-28 11:56:43 +01:00
Hariom Balharaandkodiakhq[bot] 1be5510c5e Embedded Routing Forms - Part1 (#3530)
* Support dark theme in routing form

* Fix Embed detection

* Add routing form embed example

* Better rendering support in dark mode for react-select

* Fix more theme issues

* Added test for Routing Form Embed

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-28 10:50:25 +00:00
Hariom Balhara e871781079 Fix getSchedule tests (#3560) 2022-07-28 16:07:00 +05:30
bfa70dcc83 Feat/onboarding admin (#3486)
* WIP

* API and step done fallback

* Finishing up tweaks

* Inline comment

* Translations

* Update apps/web/pages/api/auth/setup.ts

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/pages/api/auth/setup.ts

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/pages/api/auth/setup.ts

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/pages/api/auth/setup.ts

Co-authored-by: Omar López <zomars@me.com>

* Linting fixes

* Update apps/web/pages/auth/setup.tsx

Co-authored-by: Omar López <zomars@me.com>

* Linting fix

* Moving to v2

* Translations

Co-authored-by: Leo Giovanetti <hello@leog.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-27 17:28:21 -06:00
sean-brydonandkodiakhq[bot] b3bd8c1a58 Few updates to V2 components (#3532)
* Fix breadcrumb colors

* HorizontalTabs

* Team List Item WIP

* Horizontal Tabs

* Cards

* Remove team list item WIP

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-27 23:12:27 +01:00
Joe Au-Yeung 2c23949cea Add axiom to next config (#3556) 2022-07-27 16:19:59 -04:00
sean-brydon 6e3825d95a Fixes depth (#3555) 2022-07-27 13:50:10 -06:00
525ce0d075 Fix/office365 api call (#3534)
* WIP fixes for handling office365 api call

* First working version microsoft api call handling

* Remove logs

* Clean up and improve function names

* Clean up

* Remove log

* Fix function missing its correct name

* Fix direct return of statement

* Cleanup

* Simplify with private fetcher

* Update CalendarService.ts

* Update getOfficeAppKeys.ts

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-27 19:12:42 +00:00
zomars 7537ea5b91 Fixes button appearance on Safari 2022-07-27 12:58:24 -06:00
Hariom Balharaandkodiakhq[bot] 47468798fd Avoid global variables leak by making the entire code IIFE (#3543)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-27 15:58:51 +00:00
sean-brydon 587526186f Updates build DIR/command (#3550) 2022-07-27 12:02:20 +01:00
sean-brydon 7582d93d6a Fix chormatic Action (#3548) 2022-07-27 11:33:10 +01:00
Peer Richelsen b9645b4de5 feather icons and inter (#3366) 2022-07-26 20:24:00 -06:00
zomars a1fcdcae44 v1.8.3 2022-07-26 18:46:14 -06:00
zomars cf5912335e hotfix: bookings and availability pages
commit 36e1c9272fa9b86cbe9e53e03e83799820674f17
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 18:27:57 2022 -0600

    Update [schedule].tsx

commit f39535feea22a11a857d179f3506803602a95728
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 18:07:30 2022 -0600

    Update [status].tsx

commit c3ac1bcc8c7ff8dc7ebf178d23a6e5c7ea223749
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:53:43 2022 -0600

    Update [schedule].tsx

commit 39364d8476b3c582d4a7fe3f8d139c5d254e3ecf
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:43:13 2022 -0600

    Debugging prod

commit 4b428d22dec734dab19096b4fe07741f18e5bc5d
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:20:44 2022 -0600

    Update checkLicense.ts

commit 4212e6d61908face52d647bb661d71db959cf864
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 17:11:37 2022 -0600

    Booking fixes attempt

commit e3160027ea0ce40d129b445daeb3bb17711ac640
Author: zomars <zomars@me.com>
Date:   Tue Jul 26 13:52:35 2022 -0600

    migration conflict fixes
2022-07-26 18:45:10 -06:00
zomars 5ad25a692f v1.8.2 2022-07-26 13:03:19 -06:00
3bdf4a84f8 Prevent team members from creating events (#3498)
* Delete CreateEventTypeBtn.tsx

* Adding Permission to creation router

* Disable button if membership role is member

* Fix linting error

* Update explicit role selection

Co-authored-by: Omar López <zomars@me.com>

* Type fix

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2022-07-26 18:25:42 +00:00
Joe Au-Yeung 7a306900ab Fix input on trial accounts (#3522)
* Fix input on trial accounts

* Refactor conditional
2022-07-26 12:04:20 -06:00
35259b75f6 Display correct time format on availability page (#3441)
* Pass time format

* Write 24hr time format

* Remove console.log

* Change regex

* Add console.log

* Remove console.log

* Remove console.log

* Update TimeOptions.tsx

* Write time format to localstorage on user create / edit

* Grab and set from local storage

* On user create grab timeformat from browser

* Update timeFormat in DB

* Fix typo

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-07-26 12:02:44 -06:00
zomars 538c5dff43 Playwright should not live on deps 2022-07-26 10:54:25 -06:00
zomars 590ec3bf23 Update check-if-ui-has-changed.yml 2022-07-26 10:19:53 -06:00
zomars 53befd7c5c Build fixes
handleErrorsJson signature changed which triggered errors here
2022-07-26 10:00:59 -06:00
Alex van Andelandsean-brydon 047d4a0773 Some optimisations to the storybook (#3526)
* Some optimisations to the storybook

* Fixed merge artifact

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-07-26 15:05:11 +01:00
ef6ed6050b Feat: Add next-themes for theme handling (#3263)
* chore: add next-themes

* feat: add next theme provider

* fix: modify useTheme hook to use next-themes

* fix: use the new hook for theming

* remove conditional rendering with isReady boolean flag

* remove Theme component returned from useTheme hook

* Update missing useTheme usage

* Fix theme switching as per system. Also, ensure that booking and non booking pages can maintain their own requirements of theme simulatenously

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2022-07-26 08:27:57 +00:00
Carina WollendorferandCarinaWolli 2b5759e8bb fix translation key (#3527)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-07-25 19:38:04 -06:00
33e79c8ad5 Improve phone number input (#3472)
* add country code once country selected

* add changes also for when editing workflows

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-25 19:37:32 -06:00
629131b7f9 Disallow search engine indexing of hidden event types (#3478)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-07-26 00:17:15 +00:00
Alex van Andel a156a784a1 Fixes Atlantic/Azores blank results (#3516) 2022-07-25 15:45:34 -06:00
Carina WollendorferandCarinaWolli d8b2fc94b6 fix cron job for reminders (#3488)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-07-25 15:04:08 -06:00
Leo Giovanettiandsean-brydon e21e622096 Storybook router issue fix (#3525)
Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-07-25 22:02:33 +01:00
Omar Lópezandkodiakhq[bot] 160ccc3502 Fixes/bookings 500 (#3523)
* Fixes an annoying 500 error in bookings

* Fixes back to bookings link

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-25 20:22:56 +00:00
Leo Giovanettiandkodiakhq[bot] 82d8db5f70 HubSpot app improvement: create contacts (#3502)
* WIP

* Last changes

* Create non-existing contacts from attendees

* Adding list of features

* Removing unneeded code

* Missing error when creating contacts

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-25 16:13:52 -03:00
sean-brydon 43a6e3f5ce Fix V1 Colors (#3520) 2022-07-25 12:57:16 +01:00
Omar Lópezandkodiakhq[bot] c03ca5549f Wipe my cal e2e fixes (#3509)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-24 20:18:36 +00:00
Leo GiovanettiandPeer Richelsen e395c9297d Fixing already installed apps & link to them (#3500)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-23 00:59:30 +00:00
277b0c4c92 Feat/design system (#3051)
* Storybook Boilerplate setup

* Inital Setup

* First story

* Color Design System

* Badge Story + Comp

* Checkbox UI + Stories

* Update Red colors + Button Group

* Switch+Stories / Default brand color

* Update Version + Button Group combined

* Compact Butotn Group

* Tidy up Selectors

* Adds Tooltip to Button

* TextInput

* Update SB

* Prefix Input

* Match text area styles

* Prefix Controls

* Update spacing on text area

* Text Input Suffix

* Color Picker

* Update storybook

* Icon Suffix/Prefix

* Datepicker + move components to monorepo

* Text color on labels

* Move Radio over to monorepo

* Move CustomBranding to calcom/ib

* Radio

* IconBadge Component

* Update radio indicator background

* Disabled radio state

* Delete yarn.lock

* Revert "Delete yarn.lock"

This reverts commit 9b99d244b70872153a16bec1f1f3bc651e94be7a.

* Fix webhook test

* Replace old toast location

* Update radio path

* Empty State

* Update Badge.tsx

* Update Badge.tsx

* Banner Component+story

* Creation Modal

* Creation Dialog updated

* Button hover dialog

* Confirmation Modal

* Datepicker (Booking)

* PageHeader

* Fix border width

* PageHeader update search bar

* Fix input height

* Fix button group size

* Add spacing between badges - font smoothing

* Update button position on banner

* Banner update

* Fixing focus state on suffix/prefix inputs

* Implement A11y addon

* Add aria label

* error && "text-red-800"

* Fix button hover

* Change colors

* Generate snapshot tests for on hover button

* Revert colors to demo

* Change colors

* Fix Linear Issues

* Form Stepper component

* Add padding back to input

* Move ui to UI_V2

* Use V2

* Update imports for v1

* Update imports for v1

* Upgrade to nextjs in storybook root

* Update website submodule

* Avatar Groups

* Fix webpack again

* Vertical Tab Item

[WIP] - active state on small item is not working currently

* Vertical Tab Group

* Add Github action

* Fix website submodule

* Fix GH action

* Rename Workflow

* Adds lint report for CI

* Lint report fixes

* NavigationItem comments

* VerticalTabItem type fixes

* Fix avatar blur

* Fix comments

* Adding isEmbed to window object

* Disable components that use router mock.

* Load inter via google fonts

* Started select

* Adding base Breadcrumb

* Update readme

* Formatting

* Fixes

* Dependencies matching

* Linting

* Update FormStep.stories.tsx

* Linting

* Update MultiSelectCheckboxes.tsx

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-22 18:39:50 -06:00
zomars dd9adff32a Adds missing migration 2022-07-22 18:25:46 -06:00
github-actions[bot]andCrowdin Bot b8a807da59 New Crowdin translations by Github Action (#3501)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-22 23:05:42 +02:00
Pavel ShapelandPeer Richelsen 342efaed31 Refactor: use EditableHeading in event-types/[type].tsx (#3468)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-22 20:51:38 +00:00
Joe Au-Yeung 982ca3a783 Add verification json (#3505) 2022-07-22 21:25:55 +02:00
Omar Lópezandkodiakhq[bot] 9447f16b82 Migrates all tRPC code to a monorepo package (#3484)
* WIP

* WIP

* Type and migration fixes

* Adds missing default import

* Fixes import

* Fixes tRPC imports in App Store

* Migrate stripe helpers

* WIP

* Type fixes

* Type fix?

* Test fixes

* Adds missing stripe packages

* Moved queries to lib instead

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-22 11:27:06 -06:00
e82bcb6dba fixes #3336 - Avatar on New Event Type (#3465)
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-22 10:04:40 -06:00
Hariom Balhara c0c0bbccf7 Add session info to Beacon (#3497) 2022-07-22 14:38:02 +00:00
Hariom Balhara e04cb8fc61 Riverside,whereby doesnt have videoApi handle that (#3494) 2022-07-22 11:52:17 +00:00
Hariom Balhara 9b5d311136 Hotfix: Embed ModalBox - Hidden Content (#3491) 2022-07-22 12:59:13 +05:30
github-actions[bot]andCrowdin Bot c2d6c30221 New Crowdin translations by Github Action (#3483)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-21 18:00:21 -06:00
Carina WollendorferandCarinaWolli 9709ee4e71 fix reschedule translation (#3487)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-07-21 16:39:39 -06:00
zomars da29b8893a Adds missing migration 2022-07-21 16:12:10 -06:00
zomars b94f78f6e1 Update labeler.yml 2022-07-21 16:12:01 -06:00
Omar López 0a125b6900 Revert "Self-hosted onboarding first admin wizard (#3393)" (#3485)
This reverts commit ee14423f4c.
2022-07-21 15:05:52 -06:00
Leo Giovanetti ee14423f4c Self-hosted onboarding first admin wizard (#3393)
* WIP

* API and step done fallback

* Finishing up tweaks

* Inline comment

* Translations
2022-07-21 19:29:24 +00:00
c93e238e15 Fixes bug that new line is not working in workflow reminder emails (#3452)
* add html format to email template

* remove workflow reminder email

* fix that text was used instead of html

* fixes that email subject was used instead of body

* remove \n\n from text template

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-21 18:56:20 +00:00
d3fcb8bf7d Team Impersonation (#3450)
* Team Impersonation

* Refactor - Disable Imeprsonate button

* Change copy

* Add .env toggle

* Fix eslint

* Update role selection

Co-authored-by: Omar López <zomars@me.com>

* New 'admin' seed user, improve flow ImpersonationProvider

* Fix impersonation string

* Adds fullstop

Co-authored-by: Sean Brydon <seanbrydon.me@gmail.ocm>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-21 17:02:20 +00:00
Hariom Balharaandzomars 471420c1d4 Add getSchedule tests (#3233)
* Add getSchedule tests

* Add first integration test

* Update turbo.json

* Make sure unit tests run asap

* Worker threads

* Improve team event test

* Remove unrelated changes

* Improve tests readability

* Update CalendarManager.ts

* Add README

* Debug tests

* Temporarily disabled build errors

* Fix failing tests

* Remove unncessary logs

Co-authored-by: zomars <zomars@me.com>
2022-07-21 10:44:23 -06:00
2eedf74eb7 Apply suggestions from code review (#3480)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peer@cal.com>
2022-07-21 16:05:13 +00:00
github-actions[bot]andCrowdin Bot 5a9ca309d3 New Crowdin translations by Github Action (#3461)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-21 17:41:57 +02:00
sean-brydonandAlex van Andel 12c33ea88e Hide button if readonly (#3471)
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-07-21 15:25:10 +02:00
Hariom Balhara faac59fb8e Fix TS errors and weird instances of undefined error due to prisma upgrade and turbo cache (#3475)
* Fix TS errors

* Always reexecute prisma postinstall as prisma version might change after yarn
2022-07-21 09:59:37 +00:00
Carina Wollendorfer c500952dca show error message when wrong workflow id (#3474) 2022-07-20 18:33:35 -06:00
Carina Wollendorfer 0a336df162 fix setting away status (#3473) 2022-07-20 18:32:46 -06:00
alannncandOmar López 5a0cef7fb9 fix/error-handling-with-proper-status (#3453)
* Add conditional on error handling

* Fix return type for handleError

Co-authored-by: Omar López <zomars@me.com>
2022-07-20 14:02:00 -06:00
13d13c71c6 Implementing additional feedback from Workflows PR (#3456)
* implement feedback

* put formSchema outside of react component

* don't show new workflow button for free Users

* code clean up

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2022-07-20 19:48:40 +00:00
zomars 3ff43520eb Bump prisma to v4.1 2022-07-20 13:17:23 -06:00
Omar López 4874a6e34c Upgrades prisma to v4 (#3179)
* Upgrades prisma to v4

* Upgrades prisma to v4

* Upgrades prisma to v4

* Removes preview feature as it's on stable now

* Adds missing owner relationship

* Adds missing onCascades to prevent orphans

* TODO

* Adds default date to feedback

* Adds missing foreign keys

* Update schema.prisma

* Update console

* Fixes build error

* Update console

* Delete migration.sql
2022-07-20 12:49:53 -06:00
5b7cd476a7 Feature: Routing Forms Webhook for Form Responses (#3444)
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-20 18:30:57 +00:00
alannnc b47c75304e Fixed action button display while responsive and fix translations (#3469) 2022-07-20 18:12:18 +00:00
zomars be799e35d5 v1.8.1 2022-07-20 10:15:32 -06:00
zomars e35b9155d2 Submodule sync 2022-07-20 10:14:58 -06:00
Pavel ShapelandPeer Richelsen d1d467d28d Fix a typo in the server lib (#3439)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-20 13:34:17 +00:00
Ciarán Hanrahanandkodiakhq[bot] b2e5ac4cda subtle adjustment to the position of the search icon (#3440)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-20 14:47:33 +05:30
Hariom Balhara 4d2f134dc7 Hide useless windows scrollbar when they are not event required (#3458) 2022-07-20 09:57:24 +02:00
Leo Giovanettiandzomars aa166190e9 Hotfix: Cancelling recurring events follow-up (#3454)
* Other fixes and applying feedback

* Adds defaultResponder to handle zod errors

Co-authored-by: zomars <zomars@me.com>
2022-07-19 17:29:52 -06:00
0e9d754f64 Refactor cancel integrations logic (#3416)
* Refactor cancel integrations logic

* Add additional comments

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-19 16:00:01 -06:00
github-actions[bot]andCrowdin Bot 3b7f18cb5d New Crowdin translations by Github Action (#3398)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-19 21:54:38 +02:00
Leo Giovanettiandkodiakhq[bot] 63660a37f9 Cancelling recurring vs single event (#3448)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-19 19:06:23 +00:00
Hariom Balharaandkodiakhq[bot] 805419d58b Import ee from package instead of as @ee as that isnt available to api (#3446)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-19 18:48:28 +00:00
Hariom Balharaandkodiakhq[bot] 0923b83eaf Fix routing (#3445)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-19 12:36:39 -06:00
f40b035ff8 Hotfix: Unrelated bookings marked as cancelled due to recurring event (#3427)
* Fix updatedAt not updating

* Fix accidental cacnellation of all bookings if recurringEventId is null

* Update apps/web/pages/api/cancel.ts

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>

* Fix linting

* Linting warnings

Co-authored-by: Syed Ali Shahbaz <52925846+alishaz-polymath@users.noreply.github.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-07-19 11:06:43 -06:00
Hariom Balharaandkodiakhq[bot] 2b7f7a06ac Use nodeJS 14+ compatible method for replacing (#3429)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-19 18:24:19 +05:30
sean-brydon baab6ecb2e Remove Add Another for global - fix spacing (#3432) 2022-07-19 11:33:29 +02:00
alannnc 9861156edb Added optional to password to zoom response (#3422) 2022-07-18 13:02:40 -06:00
Omar López df3e3e8237 Disables batching for i18n query (#3181)
* Disables batching for i18n query

* Makes i18n batch skip explicit
2022-07-18 12:59:51 -06:00
Peer Richelsen ef36a93a55 moved impersonating alert to the top (#3420) 2022-07-18 12:08:48 -06:00
6fc3e17b47 When rescheduling update specific calendar (#3375)
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-18 11:37:47 -04:00
Hariom Balharaandkodiakhq[bot] a9ad9a6a39 Ensure / is used for paths in import (#3411)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-18 13:30:05 +00:00
Peer Richelsen 1b09b7efd4 added title to forms, removed shadow-sm (#3412) 2022-07-18 12:52:50 +00:00
sean-brydon f43bfd308b Remove shallow routing (#3401) 2022-07-17 15:42:13 +05:30
Taha 4dec3fb97c Fix the path for "schema.prisma" file in README.md (#3386) 2022-07-16 13:30:58 -06:00
Syed Ali Shahbaz ec07f84d1e HOTFIX: fixes soft failing on settings/profile routes (#3394)
* fixes soft failing on settings/profile routes

* Fixed auto changed code

* Fixed auto changed code

Probably down to some random windows incompatibility with the parser/beautifier at commit time
2022-07-16 09:45:44 +02:00
martincollignonandkodiakhq[bot] 07965b2a32 Edited typo (#3391)
"Workflows enable you to automate sending reminders and notifcations." --> "Workflows enable you to automate sending reminders and notifications."

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-15 23:00:59 +00:00
alannnc 4c2f6df94d Fix possible 404 when obtaining calendar busy lists (#3345) 2022-07-15 20:28:24 +00:00
Carina WollendorferandCarinaWolli 48916cf85e fix bug with disabled save button (#3390)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-07-15 13:54:20 -06:00
github-actions[bot]andCrowdin Bot 5e81d9fb56 New Crowdin translations by Github Action (#3387)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-15 21:15:08 +02:00
zomars 77bf376c94 v1.8.0 2022-07-15 11:20:40 -06:00
zomars 200a704756 Submodule sync 2022-07-15 11:20:12 -06:00
6dd63ee3da Bug(header): profile dropdown flickering on mobile (#3071)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-07-15 11:17:54 -06:00
sean-brydonandOmar López e99b018d3b Handle fake video apps (#3232)
Co-authored-by: Omar López <zomars@me.com>
2022-07-15 19:13:31 +02:00
github-actions[bot]andCrowdin Bot 8f020bf1d0 New Crowdin translations by Github Action (#3385)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-15 11:00:37 -06:00
Peer Richelsenandkodiakhq[bot] 78e2db6d70 extracted upgrade to pro strings (#3383)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-15 10:55:59 -06:00
ff6a7bf2a6 Fixes broken avatar slug link in availability page : OG image (#3255)
* fixed broken avatar slug link

* alternate fix

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-15 10:54:14 -06:00
0433b0a69a New Crowdin translations by Github Action (#3382)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-15 18:40:39 +02:00
Peer RichelsenandOmar López ee552d8d64 purged shadow-sm (#3381)
Co-authored-by: Omar López <zomars@me.com>
2022-07-15 18:39:11 +02:00
Carina Wollendorfer dda5750bbc Add workflow setup information to README.md (#3379) 2022-07-15 09:38:09 -06:00
18389f459d minor improvements to routing forms (#3380)
* minor improvements to routing forms

* UX improvements and text changes

Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-15 11:46:05 +00:00
github-actions[bot]andCrowdin Bot fd16d734fb New Crowdin translations by Github Action (#3364)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-15 12:42:58 +02:00
Hariom BalharaandOmar López 55152141ee Routing Forms - Avoid Flicker, Fix preload of Cal Font (#3368)
* Fix flicker due to Shell on Routing Form pages. Fix font preload(unrealted to routing forms)

* Update _app.tsx

Co-authored-by: Omar López <zomars@me.com>
2022-07-15 05:47:37 +00:00
75b817531e Fixes timezone in reminder templates (workflows) (#3376)
* fix time zone in reminder template

* fix timezone in email subject

* add missing timezone

* fix date in sms reminder template

* use organizer time zone if message send to host

* fix build error

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-07-14 19:05:01 -04:00
zomars 9162d90504 Restores old CI config 2022-07-14 15:47:09 -06:00
Carina WollendorferandOmar López bf2843c17e Create cron-scheduleSMSReminders.yml (#3373)
Co-authored-by: Omar López <zomars@me.com>
2022-07-14 15:22:40 -06:00
Carina Wollendorfer 6a28396499 create cron-scheduleEmailReminders (#3374) 2022-07-14 15:12:18 -06:00
zomars 1a0a318a55 Revert "Adds custom rewrite logic for hosted cal.com"
This reverts commit 9e5b1f121f.

# Conflicts:
#	apps/web/next.config.js
2022-07-14 14:56:00 -06:00
zomars 99b821edcd Update LicenseRequired.tsx 2022-07-14 14:48:50 -06:00
Peer Richelsen ded0b1410a Update LicenseRequired.tsx 2022-07-14 14:49:52 +02:00
58d1c28e9d Routing Forms (#2785)
* Add Routing logic to Query builder

* Make a working redirect

* Make it an app

* Move pages and components to App

* Integrate all pages in the app

* Integrate prisma everywhere

* Fix Routing Link

* Add routing preview

* Fixes

* Get deplouyed on preview with ts disabled

* Fix case

* add reordering for routes

* Move away from react DnD

* Add sidebar

* Add sidebar support and select support

* Various fixes and improvements

* Ignore eslint temporarly

* Route might be falsy

* Make CalNumber support required validation

* Loader improvements

* Add SSR support

* Fix few typescript issues

* More typesafety, download csv, bug fiees

* Add seo friendly link

* Avoid seding credebtials to frontend

* Self review fixes

* Improvements in app-store

* Cahnge Form layout

* Add scaffolding for app tests

* Add playwright tests and add user check in serving data

* Add CI tests

* Add route builder test

* Styling

* Apply suggestions from code review

Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>

* Changes as per loom feedback

* Increase time for tests

* Fix PR suggestions

* Import CSS only in the module

* Fix codacy issues

* Move the codebbase to ee and add PRO and license check

* Add Badge

* Avoid lodash import

* Fix TS error

* Fix lint errors

* Fix bug to merge conflicts resolution - me query shouldnt cause the Shell to go in loading state

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Agusti Fernandez Pardo <6601142+agustif@users.noreply.github.com>
2022-07-14 12:40:53 +00:00
Peer Richelsen 7ec5f01647 kbar follow up (#3361)
* added more routes to kbar

* added right direction for tooltip, moved search icon next to logo, added keyboard shortcuts to command bar

* added right direction for tooltip, moved search icon next to logo, added keyboard shortcuts to command bar

* fixed search icon for tablet

* fixed search icon for mobile

* hide keyboard shortcut legend on mobile

* extracted strings
2022-07-14 11:32:28 +00:00
github-actions[bot]andCrowdin Bot 6f073762fa New Crowdin translations by Github Action (#3362)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-14 13:12:56 +02:00
Hariom Balhara ebd4750f2d Improves UI stability of availability page. No CLS now. (#3347) 2022-07-14 10:28:46 +00:00
b1e4c23adc Fixes label to set Riverside link (#3358)
* fix label for riverside link

* add missing space

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-14 07:14:55 +00:00
github-actions[bot]andCrowdin Bot 03b8643d1e New Crowdin translations by Github Action (#3360)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-14 09:03:59 +02:00
318ec316d5 Adds a fully extensible command(ctrl)+k interface for Cal (#3346)
* init

* action function added

* kbar trigger placed

* UI improvements to KBar, added command + K tooltip

* renamed quick find to commandbar

* replaced window router with nextjs router

* keyboard up n down nav shows up

Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-14 06:45:07 +00:00
bf7c86ffe5 Fix Caldav not valid destination calendar and only display calendars that user can edit (#3326)
* Default readOnly to false

* Display only calendars users can edit

* Remove console.log

* Remove console.log

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-13 18:16:24 -06:00
33e36e5320 Only make web3 call if credential exists (#3323)
* Add has web3 credential

* Address feedback

* Address feedback

* Fix e2e test

* Remove unused code

* Remove unused import

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-13 18:14:39 -06:00
39199e515e Workflows (#3236)
* build basic database structure and basic design

* create simple workflow list

* add editing dots to list

* add mutation to create workflows

* add createMutation on submit + redirect to editing page

* redirect to edit page when clicking on row

* add functionality to delete workflow

* add timeUnit + input validation

* add empty screen view

* add time before it triggers to description

* add multi select with checkboxes

* remove getServerSideProps

* set default time period to 24

* fetch eventypes and display in dropdown

* add functionality to update workflows + many-to-many relationship

* fix all checked event types

* add SMS reminders

* fix bug with trigger + relocate sms template

* clean code

* add model for unscheduled reminders

* fix selected eventTypes

* fixing value to show how many event types selected

* fix plural of event types in select

* add onDelete cascade for all relations

* fix errors

* add functionality to send SMS to specific number

* fix type error for timeUnit

* set default value for time unit + fix type issues

* remove console.logs

* fix error in checking if scheduled date is more than 1h in advance

* fix build errors

* add migration for workflows

* add basic UI for editing workflow steps

* add formSchema

* improve functionality to update a step

* remove console logs

* fix issue with active event types

* allow null value for time and timeUnit

* sort steps asc step number

* add action to workflow (frontend)

* add  phone number input for SMS to specific number

* use PhoneInput for number input + input validation

* improve invalid input for phone number

* improve UI of phoneInput

* Improve design and validation

* fix undefined error

* set default action when adding action

* include all team event types

* fix phone number input for editing steps

* fix update muation to add steps

* remove console logs

* fix order of steps

* functionality to delete steps

* add trigger when event is cancelled

* add custom email body

* sms and email reminder updates

* add custom emails

* add custom email subject

* send reminder email to all attendees

* update migration

* fix default value for time and timeUnit

* save email reminders to database

* clean code

* add custom template to SMS actions

* schedule emails with sendgrid

* clean code

* add workflow templates

* keep custom template saved when changing templates

* create reminder template for email

* add dot at the end of sentace for email template

* fix merge error

* fix issue that template was not saved

* include sending emails for when event is cancelled

* fix bug that email was always sent

* add templates to sms reminders

* add info that sending sms to attendees won't trigger for already exisitng bookings

* only schedule sms for attendees when smsReminderNumber exists

* only schedule sms for attendees when smsReminderNumber exists

* set scheduled of workflow reminder to false when longer than 72 hours

* add cron for email scheduling + fixes for for sms an email scheduling

* adjust step number when deleting a step

* cast to boolean with !!

* update cron job for email reminders

* update sms template

* send reminder email not to guests

* remove sendTo from workflow reminder

* fixes sending sms without name + removing sendTo everywhere

* fix undefined name in sms template

* set user name to undefined for sending sms to a specific number

* fix singular and plural for time unit

* set to edit mode when changing action and custom template is selected

* delete reminders when booking cancelled or not active anymore

* fix type errors

* fix error that deleted reminders twice

* create booking reminders for existing bookings when eventType is set active

* improve email and sms templates

* use BookingInfo type instead of calendarEvent for reminder emails

* schedule emails for already existing bookings

* add and remove reminders for new active event types and cancelled events

* connect add action button with last step

* fix step container width for mobile view

* helper functions that return options for select

* fix typo and remove comment

* clean code

* add/improve error messages for forms

* fix typo

* clean code

* improve email template

* clean code

* fix missing prop

* save reference id when scheduling reminder

* fix step not added because of changed id for new steps

* small fixes + code cleanup

* code cleanup

* show error message when number is invalid

* fix typo

* fix phone number input when location is already phone

* set multi select checkbox to read only

* change email scheduling in cron job from 7 days to 72 hours

* show active event types in workflow list

* fix trigger information for workflow list

* improve layout for small screens in workflow list

* remove optional from zod type for workflow name

* order workflows by id

* use link icon to show active event types

* fix plural and add translation for showing nr of active eventtypes

* fix text for sms reminder template

* add reminders for added steps

* remove optional for activeOn

* improve reminder templates

* improve design of custom input fields

* set edit mode to false when phone number isn't needed anymore

* set sendTo in workflow step only for SMS_NUMBER action

* set email body and subject only when custom template

* only delete reminders that belong to workflow steps

* improve text for new event book trigger

* move reminders folder to workflows

* fix issue that save button was sometimes enabled in edit mode

* fix form issues for send to

* delete all scheduled reminders when workflow is deleted

* use enum for method

* fix imports for workflow methods

* add missing import

* fix edit mode

* create reminders when event is confirmed

* add reminderScheduler to reduce duplicate code

* make workflow enterprise and pro only feature

* move all files to /ee/ folder

* move package.json change to /ee/ folder

* add pro badge to shell

* set to edit mode to true if email subject is missing when action changes

* fix loading bug

* add migration

* fix old imports

* don't schedule reminders for opt-ins

* fix style of email body

* code clean up

* Update yarn.lock

* fix isLoading for active on dropdown

* update import for prisma

Co-authored-by: Omar López <zomars@me.com>

* update imports

* remove console

* use session to check if user has valid license

* use defaultHandler

* clean up code

* Create db-staging-snapshot.yml

* move LisenceRequired inside shell

* update import for FormValues

* fix phone input design

* fix disabled save button for edit mode

* squah all migration into a single one

* use isAfter and isBefore instead of isBetween

* import dayjs from @calcom

* validate phone number for sms reminders when booking event

* Allows auto approvals for crowdin

Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: zomars <zomars@me.com>
2022-07-14 00:10:45 +00:00
alannnc 44b8cedef0 Fix/main zoom schema parsing (#3275)
* zod zoom parsing only required fields

* Change logger for console.error
2022-07-13 18:01:00 -06:00
zomars c7d220e998 Preventing technical debt to break linting 2022-07-13 17:57:54 -06:00
zomars 78f0b095ae Update submodule-sync.yml 2022-07-13 16:17:28 -06:00
zomars 9a0b1832c3 Update submodule-sync.yml 2022-07-13 16:13:29 -06:00
github-actions[bot]andCrowdin Bot c8ef235916 New Crowdin translations by Github Action (#3356)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-13 23:57:20 +02:00
zomars 9760a2606e Submodule sync 2022-07-13 15:15:40 -06:00
zomars e916c67415 Linting fixes 2022-07-13 15:14:16 -06:00
zomars f6684c001c Fixes lint:fix script 2022-07-13 15:11:40 -06:00
zomars 9e5b1f121f Adds custom rewrite logic for hosted cal.com 2022-07-13 15:03:09 -06:00
zomars 179da11f4b Submodule sync 2022-07-12 16:32:31 -06:00
zomars 4bbca06bea Linting 2022-07-12 16:31:09 -06:00
zomars c5263efce2 Adds missing linting scripts 2022-07-12 16:31:09 -06:00
zomars 578c3d64ef Enables react/self-closing-comp lint rule 2022-07-12 16:31:09 -06:00
sean-brydon dbca46d677 Fixing 500 on slack OAuth (#3342) 2022-07-12 20:33:46 +00:00
zomars 1f953c5ca0 Update lint.yml 2022-07-12 14:15:06 -06:00
zomars a677ffb2a5 Update lint.yml 2022-07-12 14:11:29 -06:00
zomars 0ff6d4557a Fixing lint annotations 2022-07-12 14:05:15 -06:00
zomars 7bcc5c4548 eslint react/jsx-curly-brace-presence 2022-07-12 11:52:13 -06:00
zomars dbfc1477aa Formatting 2022-07-12 11:52:13 -06:00
Leo Giovanettiandkodiakhq[bot] b1d637d1a6 Upgrading nextjs and collect (#3252)
* Upgrading nextjs and collect

* Fixing suggestions + yarn.lock

* Updating submodules

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-12 11:43:53 -06:00
Peer Richelsen c3c7f82841 hide back button for embeds (#3339) 2022-07-12 14:33:12 +00:00
8d40e7cfd2 HotFix - Embed Flicker for newly converted static availability page (#3277)
* Add missing embed fingerprint

* Fix embed flicker for Availability page

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-12 14:18:53 +00:00
46266781b5 Update calendar when new attendees are added to bookings w/ seats (#3257)
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
2022-07-12 09:16:34 -04:00
zomars 5fa336c195 v1.7.7 2022-07-11 19:22:45 -06:00
alannnc 0b53cd6ffc fix/zoom schema parsing (#3274) 2022-07-11 19:22:31 -06:00
github-actions[bot]andCrowdin Bot 9ad4cba8cf New Crowdin translations by Github Action (#3324)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-11 19:15:11 -06:00
zomars 9ff4d7e024 Allows auto approvals for crowdin 2022-07-11 18:49:40 -06:00
zomars 012af52f1b Removes names for required-checks 2022-07-11 18:34:38 -06:00
zomars 6e1c165b31 Removes redundant matrix for now 2022-07-11 18:27:24 -06:00
zomars 83d2c924ca Removes matrix from required checks 2022-07-11 18:24:22 -06:00
alannnc ebc098186d Fix conditional for constant IS_SELF_HOSTED (#3329) 2022-07-11 17:46:47 -06:00
Omar López c7288bb822 Update and rename bug-hunting.yml to add-to-project.yml 2022-07-11 17:41:55 -06:00
5587867598 RFC: Custom eslint plugin (#3272)
* WIP

* Renamed pacakge

* Update yarn.lock

* Lint fixes

* Moved afterBufferTime to busyTimes & heavily simplify busy check (#3258)

* New Crowdin translations by Github Action (#3312)

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>

* Fix shell flicker (#3314)

Co-authored-by: Peer Richelsen <peeroke@gmail.com>

* Add recommended config to plugin

* Linting

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Alex van Andel <me@alexvanandel.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Hariom Balhara <hariombalhara@gmail.com>
2022-07-11 17:35:50 -06:00
github-actions[bot]andCrowdin Bot 62f6373102 New Crowdin translations by Github Action (#3320)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-11 21:23:02 +02:00
github-actions[bot]andCrowdin Bot 61f29d4a86 New Crowdin translations by Github Action (#3317)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-11 17:53:01 +02:00
Hariom BalharaandPeer Richelsen 93ab0cfd09 Fix shell flicker (#3314)
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-11 16:37:20 +02:00
github-actions[bot]andCrowdin Bot 8f495f7b67 New Crowdin translations by Github Action (#3312)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-11 16:35:34 +02:00
Alex van Andel c9d5af6591 Moved afterBufferTime to busyTimes & heavily simplify busy check (#3258) 2022-07-11 13:00:08 +02:00
github-actions[bot]andCrowdin Bot adffb00817 New Crowdin translations by Github Action (#3269)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-09 09:17:05 +02:00
Omar López afe730e502 Update README.md 2022-07-08 13:04:34 -06:00
Matt 4cd43087e9 Update google.mdx (#3268)
https://calendso.slack.com/archives/C01V37YT188/p1657289355306489
2022-07-08 08:47:15 -06:00
github-actions[bot]andCrowdin Bot 371fd48c15 New Crowdin translations by Github Action (#3265)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-08 15:25:52 +02:00
github-actions[bot]andCrowdin Bot 657cf7e180 New Crowdin translations by Github Action (#3253)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-07-08 15:21:50 +02:00
6b0ac96b38 Fix request reschedule organiser email (#3227)
* Fix request reschedule organizer email

* Updated book a new time link and removed manage or cancel action on user owner email request reschedule

* Fix let with const for a variable and change env var to a constant from lib

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-07 16:25:05 -06:00
alannnc 2c30976e99 WIP stripe customer metedada sync (#3153) 2022-07-07 15:24:42 -06:00
zomars a7212660a4 Update db-staging-snapshot.yml 2022-07-07 12:05:31 -06:00
zomars 5e4e98e002 Update db-staging-snapshot.yml 2022-07-07 11:30:48 -06:00
zomars 7bbfde607a Update db-staging-snapshot.yml 2022-07-07 11:25:47 -06:00
zomars f179c5b818 Update db-staging-snapshot.yml 2022-07-07 11:10:45 -06:00
zomars 03c27ebd62 Create db-staging-snapshot.yml 2022-07-07 11:06:35 -06:00
Carina Wollendorfer db2886d0d4 left align cancel for recurring events (#3245) 2022-07-07 17:12:13 +01:00
Hariom Balhara 5db762e987 Add logs (#3256) 2022-07-07 09:26:22 -06:00
Hariom Balhara f9cc71d120 ... doesnt seem to run dependencies first. So, ensure that using pipeline (#3254) 2022-07-07 00:00:48 -06:00
Hariom Balhara 6db129e3bf Fix Around location update (#3229) 2022-07-06 19:22:56 -06:00
sean-brydon c6b1d99270 Edit around placeholder (#3230) 2022-07-06 19:22:11 -06:00
noobyogi0010 34cd41be67 fixes #3142 - Huddle01 installation (no success message and no redirect) issue (#3231) 2022-07-06 19:21:16 -06:00
Agusti Fernandez Pardo 8ca627040b fix: adds new constants fallbacks for railway and heroku apps (#3217) 2022-07-06 19:13:02 -06:00
Bailey Pumfleet 13528ada2e Fix awaiting approval translation (#3234) 2022-07-06 19:09:28 -06:00
Alex van Andel 3c7380c3a9 Contains multiple fixes centered around Zoom (#3238) 2022-07-06 19:08:38 -06:00
zomars 9d951a5802 Formats schema 2022-07-06 16:55:29 -06:00
zomars b70550fc83 Update yarn.lock 2022-07-06 16:25:29 -06:00
zomars 6a12ff7984 Update yarn.lock 2022-07-06 16:19:54 -06:00
zomars 279d9766d8 Update website 2022-07-06 15:28:11 -06:00
85b61bed01 New Crowdin translations by Github Action (#3244)
* New Crowdin translations by Github Action

* Delete common.json

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-06 22:39:00 +02:00
zomars c2ca848f0a Transpiling fixes 2022-07-06 14:34:49 -06:00
c890e8d06d feature/settings-username-update (#2306)
* WIP feature/settings-username-update

* WIP username change

* WIP downgrade stripe

* stripe downgrade and prorate preview

* new UI for username premium component

* Fix server side props

* Remove migration, changed field to metadata user

* WIP for update subscriptions

* WIP intent username table

* WIP saving and updating username via hooks

* WIP saving working username sub update

* WIP, update html to work with tests

* Added stripe test for username update go to stripe

* WIP username change test

* Working test for username change

* Fix timeout for flaky test

* Review changes, remove logs

* Move input username as a self contained component

* Self review changes

* Removing unnecesary arrow function

* Removed intentUsername table and now using user metadata

* Update website

* Update turbo.json

* Update e2e.yml

* Update yarn.lock

* Fixes for self host username update

* Revert yarn lock from main branch

* E2E fixes

* Centralizes username check

* Improvements

* WIP separate logic between premium and save username button

* WIP refactor username premium update

* Saving WIP

* WIP redo of username check

* WIP obtain action normal, update or downgrade

* Update username change components

* Fix test for change-username self host or cal server

* Fix user type for premiumTextfield

* Using now a global unique const to know if is selfhosted, css fixes

* Remove unused import

* Using dynamic import for username textfield, prevent submit on enter

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-06 13:31:07 -06:00
Carina WollendorferandCarinaWolli 7d6a6bf812 add error message for invalid phone number (#3249)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-07-06 13:01:16 -06:00
Omar López a4684042a6 Matches phone input darkmode to the rest of inputs (#3247) 2022-07-06 12:19:48 -06:00
zomars 56da9c7c5f Removed forward slashes 2022-07-06 11:33:36 -06:00
zomars 7967c6e46b updates GH workflow 2022-07-06 11:31:34 -06:00
zomars 8d96b79a5b Update GH workflows 2022-07-06 09:28:11 -06:00
sean-brydon d0325c13d1 Split on slug to get profile page (#3228)
* Split on slug to get profile page

* Fix teams slug

* Remove console.log

* Remove unneeded diff
2022-07-06 08:47:22 -06:00
Hariom Balhara 5ea08c237a Fix ordering of credentials (#3243) 2022-07-06 08:43:57 -06:00
Hariom Balhara b3f7e8e322 Booking Module Improvements (#3221)
* Fix momentary render of dates before skeleton

* Fix Hydration issue - We shouldnt guess timezone on server as it would be different from client causing hydration error

* Fix wrong trpcQuery result when clicking on a particular date. Also, fix last day of the month being never available

* Fix as per PR Feedback
2022-07-06 08:25:41 -06:00
zomars b7d4e3885e Update bug-hunting.yml 2022-07-05 10:06:41 -06:00
zomars 3c324eb776 Update labeler.yml 2022-07-04 20:10:56 -06:00
zomars c16e71aa01 Update required-checks.yml 2022-07-04 19:59:38 -06:00
zomars 5fa3f45fed Update required-checks.yml 2022-07-04 19:49:51 -06:00
zomars 450d0e7f05 Adds timeout to checks 2022-07-04 19:48:15 -06:00
zomars b5745fd0e5 Update required-checks.yml 2022-07-04 19:44:23 -06:00
Omar López bac12d0cbd Update CONTRIBUTING.md (#3226)
* Update CONTRIBUTING.md

* Don't run e2e for md files

* Debugging why is not ignoring e2e test
2022-07-04 19:41:22 -06:00
zomars f17833552e Test 2022-07-04 19:29:07 -06:00
zomars 15bdcaff88 Debugging why is not ignoring e2e test 2022-07-04 19:22:38 -06:00
zomars 29507557d6 Update required-checks.yml 2022-07-04 19:19:01 -06:00
zomars 30c1dd036d Update lint.yml 2022-07-04 19:13:51 -06:00
zomars 8f24b92666 Update required-checks.yml 2022-07-04 18:57:06 -06:00
zomars 7c99004225 Update required-checks.yml 2022-07-04 18:50:49 -06:00
zomars 8bce6055c7 Update required-checks.yml 2022-07-04 18:48:08 -06:00
zomars 049e433781 Path fixes 2022-07-04 18:34:39 -06:00
zomars 3ac8caecbf Don't run e2e for md files 2022-07-04 18:30:44 -06:00
zomars e394cfdcd8 Update checks 2022-07-04 18:26:27 -06:00
zomars be99035f49 GH workflow name collision fixes 2022-07-04 17:36:38 -06:00
zomars 6c8e624496 Update required-checks.yml 2022-07-04 15:31:28 -06:00
zomars 5369d4123e Prevent name conflicts for e2e 2022-07-04 15:27:22 -06:00
zomars 3a055018f6 Testing required checks 2022-07-04 14:29:20 -06:00
zomars 6ac670b366 Fixes bug hunting file location 2022-07-04 14:19:05 -06:00
zomars db35a7c68f Update bug-hunting.yml 2022-07-04 13:58:32 -06:00
zomars a1d8fb0b46 Auto adds bugs to bug hunting view 2022-07-04 13:57:05 -06:00
zomars 7170fadff8 Adds pull request labeler 2022-07-04 13:16:01 -06:00
zomars fa5e6b42de v1.7.6 2022-07-04 10:51:26 -06:00
zomars 1f02a5c718 Update yarn.lock 2022-07-04 10:48:21 -06:00
zomars c55b17bf58 Update console 2022-07-04 10:48:16 -06:00
zomars 4975493090 Matches zod version to the rest 2022-07-04 10:47:12 -06:00
zomars 785a014f3c Submodule sync 2022-07-04 10:29:33 -06:00
depfu[bot] dd941e62ef Update next-auth to version 4.5.0 (#3138) 2022-07-04 14:36:20 +00:00
sean-brydonandPeer Richelsen eec2d8ceed Implement profile back button (#3165)
* Implement profile backbutton

* update slug to use username

* Back Button Improvments

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-04 08:26:22 -06:00
Alex van Andel b546d9e33e Some tweaks to slots to fix server time effecting logic (#3218) 2022-07-02 10:13:39 -06:00
Joe Au-Yeung 201d17264c Attach credential id to destinationCalendar records (#3197) 2022-07-01 21:55:27 +01:00
2cbf46a323 Seats events send email to attendees and organizer (#3206)
* Add attendees to email notfications

* New seat title

* Change organizer email

* Clean console.log

* Fix type errors

* Update packages/emails/src/templates/OrganizerScheduledEmail.tsx

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-07-01 19:19:23 +00:00
Leo Giovanetti 833791bc9a Team event type scroll, manage team invite from mobile (#3171) 2022-07-01 12:29:59 -06:00
00c9df7602 There is lot of hardcoding links in application (#3130)
* There is lot of hardcoding links in application

* Apply suggestions from code review

Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>

Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Joe Au-Yeung <65426560+joeauyeung@users.noreply.github.com>
2022-07-01 11:19:52 -06:00
Omar LópezandPeer Richelsen 669199e273 Removes unused files (#3208)
* Adds next-unused

* Cleanup

* Update next-unused

* Removes next-unused

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-07-01 10:02:44 -06:00
93e2246b18 Wrong color for Timezone selector on booking page (#3187)
Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2022-07-01 12:28:17 +01:00
James VansteenkisteandBailey Pumfleet f639405c20 fix: event creation on external office calendar (#3152)
* fix: event creation on external office calendar

* chore: simplify fix implementation

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2022-07-01 12:26:20 +01:00
zomars 240fc67d72 v1.7.5 2022-06-30 10:32:55 -06:00
Hariom Balhara eef405ef41 If booking doesnt exist its 404 page but if it exists and eventType doesnt exist, log it for now and continue with the flow (#3202) 2022-06-30 09:09:15 -06:00
Hariom BalharaandLeo Giovanetti 1469b856a6 Fix hubspot callback (#3195)
Co-authored-by: Leo Giovanetti <hello@leog.me>
2022-06-30 07:01:07 +00:00
Alex van Andel 53bbbf793d Fixes the slow performance due to the Dayjs timezone plugin (#3201)
* Fixes the slow performance due to the Dayjs timezone plugin

* Bye.

* Parses busyTime in UTC
2022-06-29 18:33:19 -06:00
Alex van Andel a91f251b98 Remove '{}' to prevent overwriting .env.appStore value (#3200) 2022-06-29 16:56:31 -06:00
github-actions[bot]andCrowdin Bot d95c3a1459 New Crowdin translations by Github Action (#3196)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-29 22:57:58 +02:00
Omar López 92bfb3e5b9 Updates snaplet transform script (#3199)
* Update .gitignore

* Fixes local dev env checks

* Update transform.ts
2022-06-29 13:03:13 -06:00
Hariom Balharaandkodiakhq[bot] fbc4eb5457 Set theme initially so that the gneerated JS code knows the correct theme already (#3193)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-29 12:50:46 -06:00
Carina WollendorferandCarinaWolli 4a74abcb34 change meeting url to a link (#3198)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-06-29 12:22:07 -06:00
Hariom Balhara 09c8f55682 Make i18n a non-batch request and non-cacheable (#3188) 2022-06-29 10:50:32 -06:00
alannnc 3f3ffa2ba8 fix/availability-tz-offset (#3185) 2022-06-29 09:01:30 +00:00
Peer Richelsen 654cfbb653 updated readme, new gif, added roadmap banner 2022-06-29 10:31:08 +02:00
Hariom Balhara ad35d3d567 Make the height of textarea as per container height but consider the text above it (#3189) 2022-06-29 10:06:36 +02:00
zomars 70a31874f0 v1.7.4 2022-06-28 17:12:56 -06:00
zomars fe8b0fc5f8 Possible timeout fix take 3 2022-06-28 16:53:14 -06:00
zomars 2983fb4c12 Fixes month name 2022-06-28 16:24:53 -06:00
zomars 03cc4855a8 Update package.json 2022-06-28 16:01:50 -06:00
zomars c82a9853d2 Submodule sync 2022-06-28 15:58:14 -06:00
zomars d732a984c2 Merge branch 'main' of https://github.com/calcom/cal.com 2022-06-28 15:46:17 -06:00
zomars 826583f404 Second potential fix for timeout 2022-06-28 15:46:07 -06:00
zomars b6dd0d5804 Remove SSG prefetch 2022-06-28 15:32:40 -06:00
Leo Giovanetti df2c3c42bf Recurring config missing from event (#3182) 2022-06-28 18:04:44 -03:00
zomars 7122a4a91d Consolidates dayjs in a single package 2022-06-28 14:48:24 -06:00
zomars 5be669a479 Update zod-utils.ts 2022-06-28 13:33:55 -06:00
zomars 8629d92a64 Merge branch 'main' of https://github.com/calcom/cal.com 2022-06-28 13:18:53 -06:00
zomars 840b6c498a Potential fix for availability timeout 2022-06-28 13:18:47 -06:00
zomars 7a8b9e5f32 Potential fix for availability timeout 2022-06-28 13:17:43 -06:00
zomars fe50f04075 Only stale SSR requests 2022-06-28 11:37:01 -06:00
Leo Giovanetti e1e369de9e Hotfix: Fixing app types variants (fixes Hubspot) (#3176)
* Fixing Hubspot

* Comment
2022-06-28 16:36:19 +00:00
9b2ad3f350 Negative days in trial license period (#3133)
* Negative days in trial license period

* Update apps/web/public/static/locales/en/common.json

Co-authored-by: gitstart <gitstart@users.noreply.github.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-06-28 10:03:31 -06:00
GlitchWitch 83dfafb8a1 Create SECURITY.md (#3174)
* Create SECURITY.md

Creates a SECURITY.md file based on https://cal.com/security

* Update markdown formatting
2022-06-28 17:24:11 +02:00
2cd7ddcdbe New Crowdin translations by Github Action (#3173)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-06-28 15:27:29 +02:00
Esteban Dalel R 2fa9ea4501 Fix broken link (#3172) 2022-06-28 11:48:16 +01:00
Peer Richelsen 6fff27b5ad Update README.md 2022-06-28 09:54:37 +02:00
zomars 0794224288 Prevents undefined classNames in Skeletons 2022-06-27 21:04:10 -06:00
alannnc e3e1de3c11 Fix saving price and currency (#3168) 2022-06-27 20:31:25 -06:00
zomars 52759333fd Skeleton fixes 2022-06-27 20:25:06 -06:00
zomars e27a2bafcd AvailabilityPage cleanup 2022-06-27 20:17:23 -06:00
zomars 87befdbdf4 Adds perf metrics for each tRPC endpoint 2022-06-27 19:19:33 -06:00
zomars 2ba8f99302 v1.7.3 2022-06-27 18:08:18 -06:00
github-actions[bot]andCrowdin Bot e7b634419b New Crowdin translations by Github Action (#3166)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-27 18:06:39 -06:00
zomars de0cb867d1 DatePicker Skeleton visibility improvements 2022-06-27 18:04:59 -06:00
zomars 02571aabe0 Fixes yarn dx not setting up docker DB 2022-06-27 17:58:59 -06:00
58b2a6425a AvailabilityPage improvements (#3118)
* Share WIP

* Embed tests fixes

* AvailabilityPage improvements

* Type fixes

* Fixes Datepicker day witdth

* Update troubleshoot.tsx

* Adds local cached slots and browsingDate

* Migrating DatePicker to use Dayjs for timeZone support

* Fixed Sunday not being available

* Added comment to clarify what is going on

* Minor bugfix in DatePicker, double empty slot markup

* Change selected date with URL through ?date..

* Initialize properly w/o query params, remove minDate for now

* Remove Loader as now using Skeleton

* Handle Etc/GMT edge case (not a timeZone)

* Added dark mode bg- color to SkeletonText + made text slightly more subtle on DatePicker

Co-authored-by: zomars <zomars@me.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-06-27 21:01:46 +00:00
Peer Richelsen 2c2261f085 remove duplicate datepicker, slight changes to success page (#3163)
* removed duplicate timezone dropdown

* minor fixes to success page and booking layout

* nit
2022-06-27 17:23:20 +00:00
alannnc 9a3624bb9a fix/request-reschedule-google-calendar-sync (#3157)
* Pass calendarId as parameter to deleteEvent()

* Updated deleteEvent param and default when sending calendarId
2022-06-27 08:52:42 -06:00
3449ad1a9f Apps: Riverside/Whereby/Around (#3053)
* Add Whereby Boilerplate

* Whereby App

* around boilerplate

* AroundCo App

* Add Riverside App

* Add Riverside to details

* Fix URL validation

* Remove Icons

* Remove console.log

* revert merge

* Fix images

* Update Iconds to be SVG

* Add Disconnect button

* Fix type

* Fixing i18n merge

* Refactor app installations

* Update varient

* Update default responder + riverside logo

* Update apps/web/pages/event-types/[type].tsx

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
Co-authored-by: Omar López <zomars@me.com>
2022-06-27 12:17:38 +02:00
Carina WollendorferandCarinaWolli 44f0893674 set right variable for name in hi_user_name (#3162)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-06-27 09:50:03 +00:00
github-actions[bot]andCrowdin Bot af6f33c709 New Crowdin translations by Github Action (#3156)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-25 22:49:35 +02:00
zomars 942b8da124 Update yarn.lock 2022-06-25 14:02:31 -06:00
zomars 87efab5b2b Submodule sync 2022-06-25 14:02:26 -06:00
Bailey Pumfleetandzomars f16f9466cb Update Prisma to v3.15.2 to support data proxy (#3124)
* Update Prisma to v3.15.2 to support data proxy

* Update package.json

* Update package.json

* Update package.json

* Update yarn.lock

* Update console

* Update turbo.json

Co-authored-by: zomars <zomars@me.com>
2022-06-25 20:01:02 +00:00
zomars ddd62d3729 Create manifest.json 2022-06-25 10:51:08 -06:00
zomars 862feb2bc4 Delete manifest.json 2022-06-25 10:38:19 -06:00
zomars 79556f1d13 Upgrades turbo and adds snaplet configs 2022-06-25 10:14:53 -06:00
5ec4b7ad37 feat: adds new version endpoint in internal api (#3155)
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-25 05:37:29 +00:00
zomars 3605fca9a4 Submodule sync 2022-06-24 23:27:29 -06:00
Peer Richelsen 7874ff9c6d removed hardcoded url for non-cal.com (#3120) 2022-06-24 23:25:17 -06:00
02e5ec37e7 Broken Integration Alarm System (#3135)
* Create broken integration email

* Send video on broken video link

* Add translations

* Add Trans components

* Remove calendars file

* Type fixes

* Add translations

* Fix type errors

* Fix Spanish translation

Co-authored-by: Omar López <zomars@me.com>

* Remove iCal event

* Locale fixes

* Clean up trans tag

* Apply suggested translation

Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>

* Change email to en

* Fix type error

* Type fix

* Fix e2e

* Fix e2e

* Fix e2e

* Fix e2e

* Fix e2e

* Update webhookResponse-chromium.txt

Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: Bailey Pumfleet <pumfleet@hey.com>
2022-06-24 23:16:20 -06:00
fd863b2ae7 Removed the Spinner in favour of a DatePicker skeleton loader (#3146)
* Removed the Spinner in favour of a DatePicker skeleton loader

* removed number, lighter skeleton, dark mode fixes

* replaced button with div

* readded number

Co-authored-by: Peer Richelsen <peer@cal.com>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-06-25 00:45:38 +02:00
sean-brydonandPeer Richelsen 13b5618a71 Teams skeleton loader (#3148)
* Teams skeleton loader

* [id] skeleton

* Fix mt

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-06-25 00:44:49 +02:00
github-actions[bot]andCrowdin Bot 643b46aa8f New Crowdin translations by Github Action (#3117)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-24 21:57:44 +02:00
Hariom Balhara 06b7744b30 Fixes over Turborepo improvements (#3144) 2022-06-24 09:38:17 -06:00
zomars 7f53c4288d Prevents 404 in networks tab for TRIAL users 2022-06-24 09:27:52 -06:00
zomars 7be60b47f1 Runs format script 2022-06-24 07:37:56 -06:00
zomars bc88fd0a04 Fixes local dev env checks 2022-06-24 07:35:39 -06:00
zomars 60c989432e Update .gitignore 2022-06-24 07:35:34 -06:00
d1b791518e save appId in zoom callback (#3145)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-23 16:00:39 -06:00
zomars 39f6ef8dcd Submodule sync 2022-06-23 14:07:05 -06:00
Peer Richelsen 777d260d78 scroll to times after clicking a day, two column layout mobile (#3147) 2022-06-23 12:36:23 -06:00
zomars 7f6a9cf555 Embed tests fixes 2022-06-22 15:12:57 -06:00
Omar López 21fb0fc3a3 Turborepo improvements (#3139)
* WIP

* WIP

* Embed fixes

* Update turbo.json

* Update e2e-embed.yml

* E2E fixes

* Update turbo.json

* App store CLI cleanup

* Update turbo.json

* Update turbo.json

* Update turbo.json

* Update turbo.json

* Update turbo.json

* Update turbo.json
2022-06-22 14:41:19 -06:00
zomars 1e7eac4133 Create .gitkeep 2022-06-22 12:55:46 -06:00
alannnc fef6f3baff Fix/zoom response zod object (#3141)
* Added deepPartial to zodResultSchema

* Adding passtrough to zoomResponseSchema
2022-06-22 12:41:40 -06:00
Alex van Andel 6f354e0c7f Migration query + Schedule->EventType to EventType->Schedule (#3140)
* Wrote migration query + change Schedule->EventType to EventType->Schedule

* Removed warning as it is not strictly true
2022-06-22 09:43:25 -06:00
Peer Richelsenandsean-brydon 40a18243e4 padding fixes to menu and other improvements (#3114)
* padding fixes to menu and other improvements

* nit

* nit

Co-authored-by: sean-brydon <55134778+sean-brydon@users.noreply.github.com>
2022-06-22 11:25:43 +01:00
alannnc 43f1e86322 Remove spacebooking from app-store (#3119)
* Remove spacebooking from app-store

* Remove missing spacebooking variable
2022-06-21 22:58:07 +02:00
Hariom Balhara 2f5928be84 Fix ordering of event-types (#3126) 2022-06-21 11:00:14 -06:00
Carina WollendorferandCarinaWolli d7cd6e011e fix redirect to upcoming booking (#3129)
Co-authored-by: CarinaWolli <wollencarina@gmail.com>
2022-06-21 14:57:04 +00:00
Hariom Balharaandkodiakhq[bot] 993bd18a73 HotFix - Background not being transparent for [user]/[type] in embed (#3121)
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-21 09:38:59 +00:00
Hariom Balhara dfc6373bb4 Fix undefined in Calendar and also add manage event again (#3122) 2022-06-21 10:14:10 +01:00
Alex van AndelandOmar López 1b81e6d8ec Hotfix/fix legacy user eventtypes (#3116)
* includedDates would always disable excludedDates due to empty array

* Added migration to add all userids into _user_eventtype

Co-authored-by: Omar López <zomars@me.com>
2022-06-20 20:21:17 +00:00
zomars 591309f335 v1.7.2 2022-06-20 13:33:00 -06:00
b339736a6f Save currency to db (#3086)
* Save currency to db

* Add missing translation

* Get currency from user credentials server side

* Adds stripe data schema

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: zomars <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-20 19:09:22 +00:00
Joe Au-YeungandOmar López 89ef6c3f13 When deleting video app, change locations to Cal Video (#3022)
* tRPC endpoint to delete credentials

* Replace deleted app with daily

* Updated Jitisi logo

* Update logo size

* Update logo size

* Fix type error

* Remove type as prop

* Add isPrismaArray to lib

* Address feedback

* Remove connect calednar

* Expire payment sessions and cancel payment intent

* Expire payment sessions and cancel payment intent

* Refactor input

Co-authored-by: Omar López <zomars@me.com>

* Remove console.log

Co-authored-by: Omar López <zomars@me.com>

* Address feedback

* Find connected account on Stripe

* Fix type error

* Add interactive transactions

* Remove console.logs

* Remove console.log

Co-authored-by: Omar López <zomars@me.com>
2022-06-20 17:52:50 +00:00
67ca98018e Cutting down calls for installed apps + other UI tweaks (#3052)
* Cutting down calls for installed apps

* Fixing onboarding

* Reverting and invalidating more specifically

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-20 11:33:07 -06:00
github-actions[bot]andCrowdin Bot 7337c75b26 New Crowdin translations by Github Action (#3109)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-20 18:08:32 +02:00
Joe Au-Yeung 4dee7d8a80 Fix ux (#3113) 2022-06-20 17:29:48 +02:00
Alex van Andel b004701601 includedDates would always disable excludedDates due to empty array (#3112) 2022-06-20 14:11:18 +00:00
Alex van Andel 929c3a9a27 Cast to boolean fix, thought we had them all (#3111) 2022-06-20 14:44:34 +01:00
Alex van Andel 5ca914b32e Fix weekStart passThrough + allow all days (#3108) 2022-06-20 10:01:57 +01:00
github-actions[bot] d440458794 New Crowdin translations by Github Action (#3107) 2022-06-19 20:00:53 +02:00
sean-brydon b3f8f9f51f Update tailwind to 3.1.3 (#3106) 2022-06-19 15:13:12 +00:00
Omar López 2d28ca61a4 Feature/parallel booking availability (#3087) 2022-06-19 16:02:00 +01:00
Choongkyu Kim 7599f2384e Add NEXTAUTH_URL to app.json to address heroku deploy failure (#3091) 2022-06-18 18:47:38 +01:00
github-actions[bot]andCrowdin Bot 9e598c8855 New Crowdin translations by Github Action (#3104)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-18 18:24:26 +02:00
github-actions[bot]andCrowdin Bot 7e75e50650 New Crowdin translations by Github Action (#3097)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-18 18:14:03 +02:00
Peer Richelsen 3ad160d0d8 fixed month buttons on darkmode (#3103) 2022-06-18 17:03:24 +02:00
Leo Giovanetti 314fef82a5 Adding Close.com library for console (#3099) 2022-06-17 21:58:27 -03:00
159c026533 As Google Meet is always installed, this fixes the doubling (#3093)
* As Google Meet is always installed, this fixes the doubling

* Make entire Google link clickable, fix extraData

* Attempt at type fixing :)

* AdditionalInformation for the booking page?

* Update packages/emails/src/components/LocationInfo.tsx

Being explicit :)

* Exclude AdditionalInformation as it is irrelevant here

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
2022-06-17 18:34:41 +00:00
alannnc b9b3fef202 Less restrictive zod object parsing (#3095)
* Less restrictive zod object parsing

* Remove logs
2022-06-17 18:19:09 +00:00
zomars ee1edc9c27 Comments 2022-06-17 10:29:02 -06:00
zomars b38991fd25 Fixes 404 for trial users 2022-06-17 10:06:49 -06:00
github-actions[bot]andCrowdin Bot 3234e0f0a9 New Crowdin translations by Github Action (#3094)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-17 17:01:41 +02:00
github-actions[bot]andCrowdin Bot a9987bb795 New Crowdin translations by Github Action (#3088)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-17 16:16:54 +02:00
d44c8f7912 Stops users who are not in getting the "Requires confirmation" email (#3084)
* Update Email

* Remove console.debug

* Remove redundant assignment

Co-authored-by: Omar López <zomars@me.com>

* Update apps/web/pages/api/book/confirm.ts

* Fix E2E test

Co-authored-by: Peer Richelsen <peeroke@gmail.com>
Co-authored-by: Omar López <zomars@me.com>
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
2022-06-17 09:02:29 +00:00
alannnc 2e79446667 Change throw 500 to 204 no content (#3089) 2022-06-16 15:55:47 -06:00
github-actions[bot]andCrowdin Bot 16692aee16 New Crowdin translations by Github Action (#3078)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-16 23:15:11 +02:00
zomars 67ea727686 Fixed schema 2022-06-16 13:34:12 -06:00
zomars f239922fb6 v1.7.1 2022-06-16 11:01:57 -06:00
zomars 60e06e65c2 Fixes spinner for light mode 2022-06-16 10:44:36 -06:00
Joe Au-Yeung c4c20cf77d Add clarification to feedback screen (#3083) 2022-06-16 16:40:14 +00:00
Syed Ali Shahbaz 6253216484 Webhook polishing (#2987) 2022-06-16 17:21:48 +01:00
Alex van Andel c5a40f6c37 Fix for slots being duplicated in teams (#3082) 2022-06-16 10:03:51 -06:00
Hariom Balhara abe090881a avoid ref overriding because now we are rendering all tab codes at once (#3079) 2022-06-16 11:55:49 +00:00
Alex van Andel e65116d9e3 Fixed issue affecting people with multiple workingHours in single schedule (#3077) 2022-06-16 11:40:36 +01:00
github-actions[bot]andCrowdin Bot f82404392f New Crowdin translations by Github Action (#3070)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2022-06-16 11:30:08 +02:00
ddc686075b feat: update api to latest commit (#3073)
Co-authored-by: Agusti Fernandez Pardo <git@agusti.me>
Co-authored-by: Peer Richelsen <peeroke@gmail.com>
2022-06-16 11:07:58 +02:00
zomars 56e61c8d7c Type fixes 2022-06-15 21:35:16 -06:00
zomars 34cae662f3 Revert "Update troubleshoot.tsx"
This reverts commit 5dcd439901.
2022-06-15 21:27:14 -06:00
zomars 5dcd439901 Update troubleshoot.tsx 2022-06-15 21:21:20 -06:00
zomars 4eec01e2ad Frontend fixes 2022-06-15 21:19:13 -06:00
zomars 3ae35a3b5d Let's just build at runtime 2022-06-15 21:19:13 -06:00
1302 changed files with 77379 additions and 23732 deletions
+15 -1
View File
@@ -21,7 +21,8 @@ DAILY_SCALE_PLAN=''
# - GOOGLE CALENDAR/MEET/LOGIN
# Needed to enable Google Calendar integration and Login with Google
# @see https://github.com/calendso/calendso#obtaining-the-google-api-credentials
GOOGLE_API_CREDENTIALS='{}'
GOOGLE_API_CREDENTIALS=
# To enable Login with Google you need to:
# 1. Set `GOOGLE_API_CREDENTIALS` above
# 2. Set `GOOGLE_LOGIN_ENABLED` to `true`
@@ -86,4 +87,17 @@ VITAL_REGION="us"
# Used for the Zapier integration
# @see https://github.com/calcom/cal.com/blob/main/packages/app-store/zapier/README.md
ZAPIER_INVITE_LINK=""
# - LARK
# Needed to enable Lark Calendar integration and Login with Lark
# @see <https://open.larksuite.com/document/ukTMukTMukTM/ukDNz4SO0MjL5QzM/g>
LARK_OPEN_APP_ID=""
LARK_OPEN_APP_SECRET=""
LARK_OPEN_VERIFICATION_TOKEN=""
# - WEB3
# Used for the Web3 plugin
# @see https://github.com/calcom/cal.com/blob/main/packages/app-store/web3/README.md
ALCHEMY_API_KEY=""
INFURA_API_KEY=""
# *********************************************************************************************************
+28 -5
View File
@@ -21,7 +21,7 @@ CALCOM_LICENSE_KEY=
# ***********************************************************************************************************
# - DATABASE ************************************************************************************************
# ⚠️ ⚠️ ⚠️ DATABASE_URL got moved to `packages/prisma/.env.example` ⚠️ ⚠️ ⚠️
DATABASE_URL="postgresql://postgres:@localhost:5450/calendso"
# ***********************************************************************************************************
# - SHARED **************************************************************************************************
@@ -46,13 +46,12 @@ PGSSLMODE=
# @see: https://github.com/calendso/calendso/issues/263
# @see: https://next-auth.js.org/configuration/options#nextauth_url
# Required for Vercel hosting - set NEXTAUTH_URL to equal your NEXT_PUBLIC_WEBAPP_URL
# NEXTAUTH_URL='http://localhost:3000'
NEXTAUTH_URL=
NEXTAUTH_URL='http://localhost:3000'
# @see: https://next-auth.js.org/configuration/options#nextauth_secret
# You can use: `openssl rand -base64 32` to generate one
NEXTAUTH_SECRET=
# Used for cross-domain cookie authentication
NEXTAUTH_COOKIE_DOMAIN=.example.com
NEXTAUTH_COOKIE_DOMAIN=
# Set this to '1' if you don't want Cal to collect anonymous usage
CALCOM_TELEMETRY_DISABLED=
@@ -77,16 +76,31 @@ NEXT_PUBLIC_HELPSCOUT_KEY=
# Inbox to send user feedback
SEND_FEEDBACK_EMAIL=
# Sengrid
# Used for email reminders in workflows
SENDGRID_API_KEY=
SENDGRID_EMAIL=
# Twilio
# Used to send SMS reminders in workflows
TWILIO_SID=
TWILIO_TOKEN=
TWILIO_MESSAGING_SID=
# This is used so we can bypass emails in auth flows for E2E testing
# Set it to "1" if you need to run E2E tests locally
NEXT_PUBLIC_IS_E2E=
# Used for internal billing system
NEXT_PUBLIC_STRIPE_PRO_PLAN_PRODUCT=
NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE=
NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE=
NEXT_PUBLIC_IS_PREMIUM_NEW_PLAN=0
NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE=
NEXT_PUBLIC_STRIPE_FREE_PLAN_PRICE=
STRIPE_WEBHOOK_SECRET=
STRIPE_PRO_PLAN_PRODUCT_ID=
STRIPE_PREMIUM_PLAN_PRODUCT_ID=
STRIPE_FREE_PLAN_PRODUCT_ID=
# Use for internal Public API Keys and optional
API_KEY_PREFIX=cal_
@@ -114,3 +128,12 @@ EMAIL_SERVER_PASSWORD='<office365_password>'
## @see https://support.google.com/accounts/answer/185833
# EMAIL_SERVER_PASSWORD='<gmail_app_password>'
# **********************************************************************************************************
# Set the following value to true if you wish to enable Team Impersonation
NEXT_PUBLIC_TEAM_IMPERSONATION=false
# Close.com internal CRM
CLOSECOM_API_KEY=
# Sendgrid internal email sender
SENDGRID_API_KEY=
+1
View File
@@ -15,6 +15,7 @@ Fixes # (issue)
<!-- Please delete options that are not relevant. -->
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] Chore (refactoring code, technical debt, workflow improvements)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
+5
View File
@@ -0,0 +1,5 @@
"♻️ autoupdate":
- apps/web/public/static/locales/**/*.json
automerge:
- apps/web/public/static/locales/**/*.json
+16
View File
@@ -0,0 +1,16 @@
name: Add PRs to project
on:
pull_request:
types:
- opened
jobs:
add-PR-to-project:
name: Add PR to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.1.0
with:
project-url: https://github.com/orgs/calcom/projects/1
github-token: ${{ secrets.GH_ACCESS_TOKEN }}
+22
View File
@@ -0,0 +1,22 @@
name: Add bugs to Bug Hunting
on:
issues:
types:
- opened
- labeled
pull_request:
types:
- opened
- labeled
jobs:
add-to-project:
name: Add issue to project
runs-on: ubuntu-latest
steps:
- uses: actions/add-to-project@v0.1.0
with:
project-url: https://github.com/orgs/calcom/projects/1
github-token: ${{ secrets.GH_ACCESS_TOKEN }}
labeled: 🐛 bug, 🎨 needs design, 🙋🏻‍♂️help wanted, 🚨 urgent
@@ -0,0 +1,36 @@
# .github/workflows/chromatic.yml
# Workflow name
name: 'Chromatic'
# Event for the workflow
on:
pull_request_target: # So we can test on forks
branches:
- main
paths:
- apps/storybook/**
- packages/ui/**
workflow_dispatch:
# List of jobs
jobs:
chromatic-deployment:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }} # So we can test on forks
fetch-depth: 0
- name: Install dependencies
run: yarn
# 👇 Adds Chromatic as a step in the workflow
- name: Publish to Chromatic
uses: chromaui/action@v1
# Options required to the GitHub Chromatic Action
with:
# 👇 Chromatic projectToken, refer to the manage page to obtain it.
projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
workingDir: "apps/storybook"
buildScriptName: "build"
+6 -10
View File
@@ -3,15 +3,11 @@ on:
pull_request_target:
branches:
- main
paths:
- "**.tsx?"
jobs:
types:
name: Check types
strategy:
matrix:
node: ["16.x"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
check-types:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
@@ -19,10 +15,10 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 2
- name: Use Node ${{ matrix.node }}
- name: Use Node 16.x
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
node-version: 16.x
cache: "yarn"
- run: yarn --frozen-lockfile
- run: yarn type-check
@@ -0,0 +1,20 @@
name: Cleanup Preview Databases
env:
SNAPLET_ACCESS_TOKEN: ${{ secrets.SNAPLET_ACCESS_TOKEN }}
SNAPLET_PROJECT_ID: cl4u26bwz7962859ply7ibuo43t
on:
pull_request:
types: [closed]
branches:
- main
jobs:
delete:
runs-on: ubuntu-latest
steps:
- uses: snaplet/action@v1
if: ${{ env.SNAPLET_ACCESS_TOKEN && env.SNAPLET_PROJECT_ID }}
with:
delete: true
+1 -1
View File
@@ -7,7 +7,7 @@ on:
# Runs “At minute 0, 15, 30, and 45.” (see https://crontab.guru)
- cron: "0,15,30,45 * * * *"
jobs:
cron:
cron-bookingReminder:
env:
APP_URL: ${{ secrets.APP_URL }}
CRON_API_KEY: ${{ secrets.CRON_API_KEY }}
+1 -1
View File
@@ -7,7 +7,7 @@ on:
# Runs “At minute 0, 15, 30, and 45.” (see https://crontab.guru)
- cron: "0,15,30,45 * * * *"
jobs:
cron:
cron-downgradeUsers:
env:
APP_URL: ${{ secrets.APP_URL }}
CRON_API_KEY: ${{ secrets.CRON_API_KEY }}
@@ -0,0 +1,23 @@
name: Cron - scheduleEmailReminders
on:
# "Scheduled workflows run on the latest commit on the default or base branch."
# — https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#schedule
schedule:
# Runs “At minute 0, 15, 30, and 45.” (see https://crontab.guru)
- cron: "0,15,30,45 * * * *"
jobs:
cron-scheduleEmailReminders:
env:
APP_URL: ${{ secrets.APP_URL }}
CRON_API_KEY: ${{ secrets.CRON_API_KEY }}
runs-on: ubuntu-latest
steps:
- name: cURL request
if: ${{ env.APP_URL && env.CRON_API_KEY }}
run: |
curl ${{ secrets.APP_URL }}/api/cron/workflows/scheduleEmailReminders \
-X POST \
-H 'content-type: application/json' \
-H 'authorization: ${{ secrets.CRON_API_KEY }}' \
--fail
@@ -0,0 +1,23 @@
name: Cron - scheduleSMSReminders
on:
# "Scheduled workflows run on the latest commit on the default or base branch."
# — https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#schedule
schedule:
# Runs “At minute 0, 15, 30, and 45.” (see https://crontab.guru)
- cron: "0,15,30,45 * * * *"
jobs:
cron-scheduleSMSReminders:
env:
APP_URL: ${{ secrets.APP_URL }}
CRON_API_KEY: ${{ secrets.CRON_API_KEY }}
runs-on: ubuntu-latest
steps:
- name: cURL request
if: ${{ env.APP_URL && env.CRON_API_KEY }}
run: |
curl ${{ secrets.APP_URL }}/api/cron/workflows/scheduleSMSReminders \
-X POST \
-H 'content-type: application/json' \
-H 'authorization: ${{ secrets.CRON_API_KEY }}' \
--fail
+18
View File
@@ -0,0 +1,18 @@
name: Staging DB Snapshot
on:
schedule:
- cron: "0 4 * * 1-5" # At 04:00 on every day-of-week from Monday through Friday.
workflow_dispatch:
jobs:
db-staging-snapshot:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Snaplet CLI
run: curl -sL https://app.snaplet.dev/get-cli/ | bash
- name: Restore Snapshot
run: snaplet snapshot restore -y
env:
SNAPLET_DATABASE_URL: ${{ secrets.SNAPLET_DATA_TARGET_DB_URL }}
SNAPLET_ACCESS_TOKEN: ${{ secrets.SNAPLET_ACCESS_TOKEN }}
SNAPLET_DATABASE_ID: ${{ secrets.SNAPLET_DATABASE_ID }}
+100
View File
@@ -0,0 +1,100 @@
name: E2E App-Store Apps
on:
push:
branches: [fixes/e2e-consolidation] # TODO: Remove this after merged in main
pull_request_target: # So we can test on forks
branches:
- main
paths-ignore:
- apps/api/**
- apps/console/**
- apps/docs/**
- apps/swagger/**
- apps/website/**
- apps/web/public/**
jobs:
test:
timeout-minutes: 20
name: E2E App-Store Apps
strategy:
matrix:
node: ["16.x"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
env:
DATABASE_URL: postgresql://postgres:@localhost:5432/calendso
NEXT_PUBLIC_WEBAPP_URL: http://localhost:3000
NEXT_PUBLIC_WEBSITE_URL: http://localhost:3000
NEXTAUTH_SECRET: secret
GOOGLE_API_CREDENTIALS: ${{ secrets.CI_GOOGLE_API_CREDENTIALS }}
GOOGLE_LOGIN_ENABLED: true
# CRON_API_KEY: xxx
CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }}
NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }}
STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }}
PAYMENT_FEE_PERCENTAGE: 0.005
PAYMENT_FEE_FIXED: 10
SAML_DATABASE_URL: postgresql://postgres:@localhost:5432/calendso
SAML_ADMINS: pro@example.com
NEXTAUTH_URL: http://localhost:3000/api/auth
NEXT_PUBLIC_IS_E2E: 1
# EMAIL_FROM: e2e@cal.com
# EMAIL_SERVER_HOST: ${{ secrets.CI_EMAIL_SERVER_HOST }}
# EMAIL_SERVER_PORT: ${{ secrets.CI_EMAIL_SERVER_PORT }}
# EMAIL_SERVER_USER: ${{ secrets.CI_EMAIL_SERVER_USER }}
# EMAIL_SERVER_PASSWORD: ${{ secrets.CI_EMAIL_SERVER_PASSWORD }}
# MS_GRAPH_CLIENT_ID: xxx
# MS_GRAPH_CLIENT_SECRET: xxx
# ZOOM_CLIENT_ID: xxx
# ZOOM_CLIENT_SECRET: xxx
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
services:
postgres:
image: postgres:12.1
env:
POSTGRES_USER: postgres
POSTGRES_DB: calendso
ports:
- 5432:5432
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }} # So we can test on forks
fetch-depth: 2
- run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV
- name: Use Node ${{ matrix.node }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
cache: "yarn"
- name: Cache playwright binaries
uses: actions/cache@v2
id: playwright-cache
with:
path: |
~/Library/Caches/ms-playwright
~/.cache/ms-playwright
${{ github.workspace }}/node_modules/playwright
key: cache-playwright-${{ hashFiles('**/yarn.lock') }}
restore-keys: cache-playwright-
- run: yarn --frozen-lockfile
- name: Install playwright deps
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: yarn playwright install --with-deps
- name: Run Tests
run: yarn test-e2e:app-store
- name: Upload Test Results
if: ${{ always() }}
uses: actions/upload-artifact@v2
with:
name: test-results
path: test-results
+16 -23
View File
@@ -1,27 +1,16 @@
name: E2E test
name: E2E Embed tests and booking flow(for non-embed as well)
on:
pull_request_target: # So we can test on forks
branches:
- main
# Embed e2e - tests verify booking flow which is applicable to non-embed case also. So, don't ignore apps/web changes.
paths-ignore:
- apps/api/**
- apps/console/**
- apps/docs/**
- apps/swagger/**
- apps/website/**
- apps/web/public/**
- tests/**
- playwright/**
paths:
- apps/web/**
- packages/embeds/**
jobs:
test:
e2e-embed:
timeout-minutes: 20
name: Embed and booking flow(for non-embed as well)
strategy:
matrix:
node: ["16.x"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:@localhost:5432/calendso
@@ -33,6 +22,11 @@ jobs:
# CRON_API_KEY: xxx
CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }}
NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }}
NEXT_PUBLIC_STRIPE_FREE_PLAN_PRICE: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_FREE_PLAN_PRICE }}
NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE }}
NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE }}
NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE: ${{ secrets.NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE }}
NEXT_PUBLIC_IS_PREMIUM_NEW_PLAN: 1
STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }}
@@ -69,10 +63,10 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }} # So we can test on forks
fetch-depth: 2
- run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV
- name: Use Node ${{ matrix.node }}
- name: Use Node 16.x
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
node-version: 16.x
cache: "yarn"
- name: Cache playwright binaries
@@ -87,11 +81,10 @@ jobs:
restore-keys: cache-playwright-
- run: yarn --frozen-lockfile
- name: Install playwright deps
# if: steps.playwright-cache.outputs.cache-hit != 'true'
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: yarn playwright install --with-deps
- run: yarn embed-tests-prepare
- run: yarn workspace @calcom/embed-core embed-tests-update-snapshots:ci
- run: yarn workspace @calcom/embed-react embed-tests-update-snapshots:ci
- name: Run Tests
run: yarn turbo run embed-tests-update-snapshots:ci --scope=@calcom/embed-react --concurrency=1
- name: Upload embed-core results
if: ${{ always() }}
+17 -11
View File
@@ -1,19 +1,17 @@
name: E2E test
on:
push:
branches: [fixes/e2e-consolidation] # TODO: Remove this after merged in main
pull_request_target: # So we can test on forks
branches:
- main
paths-ignore:
- apps/web/public/static/locales/**
paths:
- apps/web/**
- packages/**
jobs:
test:
e2e:
timeout-minutes: 20
name: Testing ${{ matrix.node }} and ${{ matrix.os }}
strategy:
matrix:
node: ["16.x"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://postgres:@localhost:5432/calendso
@@ -25,9 +23,17 @@ jobs:
# CRON_API_KEY: xxx
CALENDSO_ENCRYPTION_KEY: ${{ secrets.CI_CALENDSO_ENCRYPTION_KEY }}
NEXT_PUBLIC_STRIPE_PUBLIC_KEY: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PUBLIC_KEY }}
NEXT_PUBLIC_STRIPE_FREE_PLAN_PRICE: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_FREE_PLAN_PRICE }}
NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PRO_PLAN_PRICE }}
NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE: ${{ secrets.CI_NEXT_PUBLIC_STRIPE_PREMIUM_PLAN_PRICE }}
NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE: ${{ secrets.NEXT_PUBLIC_STRIPE_PREMIUM_NEW_PLAN_PRICE }}
NEXT_PUBLIC_IS_PREMIUM_NEW_PLAN: 1
STRIPE_PRIVATE_KEY: ${{ secrets.CI_STRIPE_PRIVATE_KEY }}
STRIPE_CLIENT_ID: ${{ secrets.CI_STRIPE_CLIENT_ID }}
STRIPE_WEBHOOK_SECRET: ${{ secrets.CI_STRIPE_WEBHOOK_SECRET }}
STRIPE_PRO_PLAN_PRODUCT_ID: ${{ secrets.CI_STRIPE_PRO_PLAN_PRODUCT_ID }}
STRIPE_PREMIUM_PLAN_PRODUCT_ID: ${{ secrets.CI_STRIPE_PREMIUM_PLAN_PRODUCT_ID }}
STRIPE_FREE_PLAN_PRODUCT_ID: ${{ secrets.CI_STRIPE_FREE_PLAN_PRODUCT_ID }}
PAYMENT_FEE_PERCENTAGE: 0.005
PAYMENT_FEE_FIXED: 10
SAML_DATABASE_URL: postgresql://postgres:@localhost:5432/calendso
@@ -61,10 +67,10 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }} # So we can test on forks
fetch-depth: 2
- run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV
- name: Use Node ${{ matrix.node }}
- name: Use Node 16.x
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
node-version: 16.x
cache: "yarn"
- name: Cache playwright binaries
+17
View File
@@ -0,0 +1,17 @@
name: "Pull Request Labeler"
on:
- pull_request_target
jobs:
labeler:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
# Checking the actor will prevent your Action run failing on non-Dependabot
# PRs but also ensures that it only does work for Dependabot PRs.
if: ${{ github.actor == 'github-actions[bot]' }}
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
+9 -9
View File
@@ -3,13 +3,12 @@ on:
pull_request_target:
branches:
- main
paths:
- "**.tsx?"
- "**.jsx?"
jobs:
lint:
strategy:
matrix:
node: ["16.x"]
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
runs-on: ubuntu-latest
steps:
- name: Checkout repo
@@ -18,10 +17,10 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 2
- name: Use Node ${{ matrix.node }}
- name: Use Node 16.x
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
node-version: 16.x
cache: "yarn"
- name: Install deps
@@ -36,10 +35,11 @@ jobs:
run: jq -s '[.[]]|flatten' lint-results/*.json &> lint-results/eslint_report.json
- name: Annotate Code Linting Results
uses: ataylorme/eslint-annotate-action@1.2.0
uses: ataylorme/eslint-annotate-action@v2
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
repo-token: ${{ secrets.GITHUB_TOKEN }}
report-json: "lint-results/eslint_report.json"
only-pr-files: false
- name: Upload ESLint report
if: ${{ always() }}
+42
View File
@@ -0,0 +1,42 @@
name: "Meta Workflow: Require Conditional Status Checks"
on:
push:
branches: [fixes/e2e-consolidation] # TODO: Remove this after merged in main
pull_request:
branches:
- main
jobs:
required-checks:
runs-on: ubuntu-latest
steps:
- name: Ensure All Conditional Checks Have Passed
uses: blend/require-conditional-status-checks@2022.02.04
with:
timeout: 15m
github-token: ${{ github.token }}
interval: 20s
# Question marks aren't working
# @see https://github.com/blend/require-conditional-status-checks/pull/11
checks-yaml: |
- job: lint
paths:
- /**/*.jsx
- /**/*.js
- /**/*.tsx
- /**/*.ts
- job: check-types
paths:
- /**/*.tsx
- /**/*.ts
- job: e2e
paths:
- /apps/web/**
- /packages/**
- job: e2e-embed
paths:
- /apps/web/**
- /packages/embeds/**
- job: test
paths:
- /apps/web/**
- /packages/**
+7 -8
View File
@@ -3,7 +3,6 @@ on:
schedule:
- cron: "15 */4 * * *"
workflow_dispatch: ~
jobs:
submodule-sync:
name: Submodule update
@@ -11,11 +10,11 @@ jobs:
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: run action
uses: releasehub-com/github-action-create-pr-parent-submodule@v1
with:
github_token: ${{ secrets.GH_ACCESS_TOKEN }}
parent_repository: "calcom/cal.com"
checkout_branch: "main"
pr_against_branch: "main"
owner: "calcom"
submodules: recursive
token: ${{ secrets.GH_ACCESS_TOKEN }}
- name: Commit
run: |
git config user.email "actions@github.com"
git config user.name "github-actions"
git commit -am "Auto updated submodule references" && git push || echo "No changes to commit"
+28
View File
@@ -0,0 +1,28 @@
name: Unit tests
on:
push:
branches: [fixes/e2e-consolidation] # TODO: Remove this after merged in main
pull_request_target: # So we can test on forks
branches:
- main
paths:
- apps/web/**
- packages/**
jobs:
test:
timeout-minutes: 20
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
with:
ref: ${{ github.event.pull_request.head.sha }} # So we can test on forks
fetch-depth: 2
- run: echo 'NODE_OPTIONS="--max_old_space_size=4096"' >> $GITHUB_ENV
- name: Use Node 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: "yarn"
- run: yarn --frozen-lockfile
- run: yarn test
+8
View File
@@ -2,6 +2,7 @@
# .env file
.env
!packages/prisma/.env
# dependencies
node_modules
@@ -72,3 +73,10 @@ dist
# Linting
lint-results
#Storybook
apps/storybook/build-storybook.log
# Snaplet
.snaplet/snapshots
.snaplet/structure.d.ts
+2
View File
@@ -2,3 +2,5 @@
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged
yarn app-store:build && git add packages/app-store/*.generated.*
+1 -2
View File
@@ -4,5 +4,4 @@ version = 1
autoupdate_label = "♻️ autoupdate"
[approve]
auto_approve_usernames = ["dependabot"]
auto_approve_usernames = ["dependabot", "github-actions"]
+4
View File
@@ -0,0 +1,4 @@
{
"projectId": "cl4u26bwz7962859ply7ibuo43t",
"databaseUrl": "postgresql://postgres@localhost:5450/calendso"
}
+3
View File
@@ -0,0 +1,3 @@
{
"version": "0.3.0"
}
+97
View File
@@ -0,0 +1,97 @@
// This transform config was generated by Snaplet.
// Snaplet found fields that may contain personally identifiable information (PII)
// and used that to populate this file.
import { copycat as c } from "@snaplet/copycat";
import type { Transform } from "./structure";
function hasStringProp<T extends string>(x: unknown, key: T): x is { [key in T]: string } {
return !!x && typeof x === "object" && key in x;
}
function replaceKeyIfExists<T extends string>(x: object, key: T) {
if (hasStringProp(x, key)) {
return { ...x, [key]: c.uuid(x[key]) };
}
return x;
}
function generateSlug(x: string) {
return c.words(x, { max: 3 }).split(" ").join("-");
}
function replaceSensitiveKeys(record: object) {
return {
...record,
...replaceKeyIfExists(record, "client_id"),
...replaceKeyIfExists(record, "client_secret"),
...replaceKeyIfExists(record, "public_key"),
...replaceKeyIfExists(record, "api_key"),
...replaceKeyIfExists(record, "signing_secret"),
...replaceKeyIfExists(record, "access_token"),
...replaceKeyIfExists(record, "refresh_token"),
...replaceKeyIfExists(record, "stripe_user_id"),
...replaceKeyIfExists(record, "stripe_publishable_key"),
...replaceKeyIfExists(record, "accessToken"),
...replaceKeyIfExists(record, "refreshToken"),
...replaceKeyIfExists(record, "bot_user_id"),
...replaceKeyIfExists(record, "app_id"),
};
}
const generateUsername = (x: string) => `${c.firstName(x)}-${c.lastName(x)}${c.int(x, { min: 2, max: 99 })}`;
const config: Transform = () => ({
public: {
ApiKey: ({ row }) => ({
hashedKey: c.uuid(row.hashedKey),
}),
App: ({ row }) => ({
keys: replaceSensitiveKeys(row.keys),
}),
Attendee: ({ row }) => ({
email: c.email(row.email),
name: c.fullName(row.name),
timeZone: c.timezone(row.timeZone),
}),
Credential: ({ row }) => ({
key: typeof row.key === "string" ? c.uuid(row.key) : replaceSensitiveKeys(row.key),
}),
EventType: ({ row }) => ({
slug: generateSlug(row.slug),
timeZone: c.timezone(row.timeZone),
eventName: c.words(row.eventName, { max: 3 }),
}),
ResetPasswordRequest: ({ row }) => ({
email: c.email(row.email),
}),
Schedule: ({ row }) => ({
timeZone: c.timezone(row.timeZone),
}),
Team: ({ row }) => ({
bio: c.sentence(row.bio),
name: c.words(row.name, { max: 2 }),
slug: generateSlug(row.slug),
}),
users: ({ row }) =>
row.role !== "ADMIN"
? {
bio: c.sentence(row.bio),
email: c.email(row.email),
name: c.fullName(row.name),
password: c.password(row.password),
timeZone: c.timezone(row.timeZone),
username: generateUsername(row.username),
}
: row,
VerificationToken: ({ row }) => ({
token: c.uuid(row.token),
}),
Account: ({ row }) => ({
access_token: c.uuid(row.access_token),
refresh_token: c.uuid(row.refresh_token),
}),
},
});
export default config;
-4
View File
@@ -22,10 +22,6 @@
"group": {
"kind": "build",
"isDefault": true
},
// Try start the task on folder open
"runOptions": {
"runOn": "folderOpen"
}
},
{
+11 -11
View File
@@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
@@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
+4 -7
View File
@@ -1,6 +1,6 @@
# Contributing to Cal.com
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
- Before jumping into a PR be sure to search [existing PRs](https://github.com/calcom/cal.com/pulls) or [issues](https://github.com/calcom/cal.com/issues) for an open or closed item that relates to your submission.
@@ -8,22 +8,19 @@ Contributions are what make the open source community such an amazing place to b
### Legend
✅ = has knowledge
✅ = has knowledge
🥇 = is their main priority
⚠️ = is the only one with knowledge
⚠️ = is the only one with knowledge
👀 = has no knowledge but wants to be onboarded
👀 = has no knowledge but wants to be onboarded
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://dynamic-svgs.vercel.app/image.svg?dark">
<img alt="Areas of expertise table" src="https://dynamic-svgs.vercel.app/image.svg">
</picture>
## Developing
The development branch is `main`. This is the branch that all pull
+1 -1
View File
@@ -2,7 +2,7 @@ Copyright (c) 2020-present Cal.com, Inc.
Portions of this software are licensed as follows:
* All content that resides under "apps/web/ee/" (https://github.com/calcom/cal.com/tree/main/apps/web/ee) directory of this repository (Enterprise Edition) is licensed under the license defined in "ee/LICENSE".
* All content that resides under https://github.com/calcom/cal.com/tree/main/packages/features/ee directory of this repository (Enterprise Edition) is licensed under the license defined in "ee/LICENSE".
* All third party components incorporated into the Cal.com Software are licensed under the original license provided by the owner of the applicable component.
* Content outside of the above mentioned directories or restrictions above is available under the "AGPLv3" license as defined below.
+75 -15
View File
@@ -26,6 +26,7 @@
<p align="center">
<a href="https://cal.com/slack"><img src="https://img.shields.io/badge/Slack-calendso.slack.com-%234A154B" alt="Join Cal.com Slack"></a>
<a href="https://www.producthunt.com/posts/calendso"><img src="https://img.shields.io/badge/Product%20Hunt-%231%20Product%20of%20the%20Month-%23DA552E" alt="Product Hunt"></a>
<a href="https://status.cal.com"><img src="https://betteruptime.com/status-badges/v1/monitor/a9kf.svg" alt="Uptime"></a>
<a href="https://github.com/calcom/cal.com/stargazers"><img src="https://img.shields.io/github/stars/calcom/cal.com" alt="Github Stars"></a>
<a href="https://news.ycombinator.com/item?id=26817795"><img src="https://img.shields.io/badge/Hacker%20News-311-%23FF6600" alt="Hacker News"></a>
<a href="https://github.com/calcom/cal.com/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-AGPLv3-purple" alt="License"></a>
@@ -36,6 +37,8 @@
<a href="https://hub.docker.com/r/calendso/calendso"><img src="https://img.shields.io/docker/pulls/calendso/calendso"></a>
<a href="https://twitter.com/calcom"><img src="https://img.shields.io/twitter/follow/calcom?style=flat"></a>
<a href="https://twitch.tv/calcomtv"><img src="https://img.shields.io/twitch/status/calcomtv?style=flat"></a>
<a href="https://github.com/orgs/calcom/projects/1/views/25"><img src="https://img.shields.io/badge/Help%20Wanted-Contribute-blue"></a>
<a href="https://cal.com/figma"><img src="https://img.shields.io/badge/Figma-Design%20System-blueviolet"></a>
<a href="https://calendso.slack.com/archives/C02BY67GMMW"><img src="https://img.shields.io/badge/translations-contribute-brightgreen" /></a>
<a href="https://www.contributor-covenant.org/version/1/4/code-of-conduct/ "><img src="https://img.shields.io/badge/Contributor%20Covenant-1.4-purple" /></a>
</p>
@@ -44,7 +47,7 @@
## About The Project
<img width="100%" alt="booking-screen" src="https://user-images.githubusercontent.com/8019099/134363898-4b29e18f-3e61-42b7-95bc-10891056249d.gif">
<img width="100%" alt="booking-screen" src="https://user-images.githubusercontent.com/8019099/176390354-f1bc7069-0341-437a-9bb8-eb41092b4016.gif">
# Scheduling infrastructure for absolutely everyone
@@ -55,7 +58,7 @@ Calendly and other scheduling tools are awesome. It made our lives massively eas
That's where Cal.com comes in. Self-hosted or hosted by us. White-label by design. API-driven and ready to be deployed on your own domain. Full control of your events and data.
## Product of the Month: April
## Product of the Month: April 2021
#### Support us on [Product Hunt](https://www.producthunt.com/posts/calendso?utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-calendso)
@@ -84,7 +87,7 @@ To get a local copy up and running, please follow these simple steps.
Here is what you need to be able to run Cal.
- Node.js (Version: >=14.x <17)
- Node.js (Version: >=15.x <17)
- PostgreSQL
- Yarn _(recommended)_
@@ -94,7 +97,7 @@ Here is what you need to be able to run Cal.
### Setup
1. Clone the repo into a public GitHub repository (to comply with AGPLv3. To clone in a private repository, [acquire a commercial license](https://cal.com/sales))
1. Clone the repo into a public GitHub repository (or fork https://github.com/calcom/cal.com/fork). If you plan to distribute the code, keep the source code public to comply with [AGPLv3](https://github.com/calcom/cal.com/blob/main/LICENSE). To clone in a private repository, [acquire a commercial license](https://cal.com/sales))
```sh
git clone https://github.com/calcom/cal.com.git
@@ -112,7 +115,10 @@ Here is what you need to be able to run Cal.
yarn
```
1. Use `openssl rand -base64 32` to generate a key and add it under `NEXTAUTH_SECRET` in the .env file.
1. Set up your .env file
- Duplicate `.env.example` to `.env`
- Use `openssl rand -base64 32` to generate a key and add it under `NEXTAUTH_SECRET` in the .env file.
- Use `openssl rand -base64 24` to generate a key and add it under `CALENDSO_ENCRYPTION_KEY` in the .env file.
#### Quick start with `yarn dx`
@@ -133,7 +139,7 @@ echo 'NEXT_PUBLIC_DEBUG=1' >> .env
#### Manual setup
1. Configure environment variables in the `packages/prisma/.env` file. Replace `<user>`, `<pass>`, `<db-host>`, `<db-port>` with their applicable values
1. Configure environment variables in the `.env` file. Replace `<user>`, `<pass>`, `<db-host>`, `<db-port>` with their applicable values
```
DATABASE_URL='postgresql://<user>:<pass>@<db-host>:<db-port>'
@@ -167,7 +173,7 @@ echo 'NEXT_PUBLIC_DEBUG=1' >> .env
</details>
1. Set a 32 character random string in your .env file for the `CALENDSO_ENCRYPTION_KEY` (You can use a command like `openssl rand -base64 24` to generate one).
1. Set up the database using the Prisma schema (found in `apps/web/prisma/schema.prisma`)
1. Set up the database using the Prisma schema (found in `packages/prisma/schema.prisma`)
```sh
yarn workspace @calcom/prisma db-deploy
@@ -189,7 +195,7 @@ echo 'NEXT_PUBLIC_DEBUG=1' >> .env
1. Click on the `User` model to add a new user record.
1. Fill out the fields `email`, `username`, `password`, and set `metadata` to empty `{}` (remembering to encrypt your password with [BCrypt](https://bcrypt-generator.com/)) and click `Save 1 Record` to create your first user.
> New users are set on a `TRIAL` plan by default. You might want to adjust this behavior to your needs in the `apps/web/prisma/schema.prisma` file.
> New users are set on a `TRIAL` plan by default. You might want to adjust this behavior to your needs in the `packages/prisma/schema.prisma` file.
1. Open a browser to [http://localhost:3000](http://localhost:3000) and login with your just created, first user.
### E2E-Testing
@@ -201,7 +207,7 @@ Be sure to set the environment variable `NEXTAUTH_URL` to the correct value. If
yarn test-e2e
# To open last HTML report run:
yarn workspace @calcom/web playwright-report
yarn playwright show-report test-results/reports/playwright-html-report
```
### Upgrading from earlier versions
@@ -260,12 +266,16 @@ yarn workspace @calcom/web playwright-report
### Docker
The Docker configuration for Cal is an effort powered by people within the community. Cal.com, Inc. does not provide official support for Docker, but we will accept fixes and documentation. Use at your own risk.
The Docker configuration for Cal is an effort powered by people within the community.
If you want to contribute to the Docker repository, [reply here](https://github.com/calcom/docker/discussions/32).
The Docker configuration can be found [in our docker repository](https://github.com/calcom/docker).
Issues with Docker? Find your answer or open a new discussion [here](https://github.com/calcom/docker/discussions) to ask the community.
Cal.com, Inc. does not provide official support for Docker, but we will accept fixes and documentation. Use at your own risk.
### Heroku
<a href="https://heroku.com/deploy?template=https://github.com/calcom/cal.com">
@@ -274,15 +284,23 @@ The Docker configuration can be found [in our docker repository](https://github.
### Railway
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/new/template?template=https%3A%2F%2Fgithub.com%2Fcalendso%2Fcalendso&plugins=postgresql&envs=GOOGLE_API_CREDENTIALS%2CBASE_URL%2CNEXTAUTH_URL%2CPORT&BASE_URLDefault=http%3A%2F%2Flocalhost%3A3000&NEXTAUTH_URLDefault=http%3A%2F%2Flocalhost%3A3000&PORTDefault=3000)
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/new/template/cal)
You can deploy Cal on [Railway](https://railway.app/) using the button above. The team at Railway also have a [detailed blog post](https://blog.railway.app/p/calendso) on deploying Cal on their platform.
### Vercel
Currently Vercel Pro Plan is required to be able to Deploy this application with Vercel, due to limitations on the number of serverless functions on the free plan.
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fcalcom%2Fcal.com&env=DATABASE_URL,NEXT_PUBLIC_WEBAPP_URL,NEXTAUTH_URL,NEXTAUTH_SECRET,CRON_API_KEY,CALENDSO_ENCRYPTION_KEY,NEXT_PUBLIC_LICENSE_CONSENT&envDescription=See%20all%20available%20env%20vars&envLink=https%3A%2F%2Fgithub.com%2Fcalcom%2Fcal.com%2Fblob%2Fmain%2F.env.example&project-name=cal&repo-name=cal.com&build-command=cd%20../..%20%26%26%20yarn%20build&root-directory=apps%2Fweb%2F)
<!-- ROADMAP -->
## Roadmap
See the [roadmap project](https://github.com/orgs/calcom/projects/1) for a list of proposed features (and known issues). You can change the view to see planned tagged releases.
<a href="https://cal.com/roadmap"><img src="https://user-images.githubusercontent.com/8019099/176388295-25081ca4-207e-4468-8079-37b195fa8e59.png" alt="Cal.com Roadmap" /></a>
See the [roadmap project](https://cal.com/roadmap) for a list of proposed features (and known issues). You can change the view to see planned tagged releases.
<!-- CONTRIBUTING -->
@@ -292,7 +310,7 @@ Please see our [contributing guide](/CONTRIBUTING.md).
### Good First Issues
We have a list of [good first issues](https://github.com/calcom/cal.com/labels/✅%20good%20first%20issue) that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.
We have a list of [help wanted](https://github.com/orgs/calcom/projects/1/views/25) that contain small features and bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.
## Integrations
@@ -310,6 +328,23 @@ We have a list of [good first issues](https://github.com/calcom/cal.com/labels/
10. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs.
11. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key.
#### _Adding google calendar to Cal.com App Store_
After adding Google credentials, you can now Google Calendar App to the app store.
You can repopulate the App store by running
```
cd packages/prisma
yarn seed-app-store
```
You will need to complete a few more steps to activate Google Calendar App.
Make sure to complete section "Obtaining the Google API Credentials". After the do the
following
1. Add extra redirect URL `<Cal.com URL>/api/auth/callback/google`
1. Under 'OAuth concent screen', click "PUBLISH APP"
### Obtaining Microsoft Graph Client ID and Secret
1. Open [Azure App Registration](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps) and select New registration
@@ -418,6 +453,31 @@ Next make sure you have your app running `yarn dx`. Then in the slack chat type
1. Select all events for the webhook you interested, e.g. `sleep_created`
1. Copy the webhook secret (`sec...`) to `VITAL_WEBHOOK_SECRET` in the .env.appStore file.
## Workflows
### Setting up SendGrid for Email reminders
1. Create a SendGrid account (https://signup.sendgrid.com/)
2. Go to Settings -> API keys and create an API key
3. Copy API key to your .env file into the SENDGRID_API_KEY field
4. Go to Settings -> Sender Authentication and verify a single sender
5. Copy the verified E-Mail to your .env file into the SENDGRID_EMAIL field
### Setting up Twilio for SMS reminders
1. Create a Twilio account (https://www.twilio.com/try-twilio)
2. Click ‘Get a Twilio phone number’
3. Copy Account SID to your .env file into the TWILIO_SID field
4. Copy Auth Token to your .env file into the TWILIO_TOKEN field
5. Create a messaging service (Develop -> Messaging -> Services)
6. Choose any name for the messaging service
7. Click 'Add Senders'
8. Choose phone number as sender type
9. Add the listed phone number
10. Leave all other fields as they are
11. Complete setup and click ‘View my new Messaging Service’
12. Copy Messaging Service SID to your .env file into the TWILIO_MESSAGING_SID field
<!-- LICENSE -->
## License
@@ -437,7 +497,7 @@ Special thanks to these amazing projects which help power Cal.com:
- [Day.js](https://day.js.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Prisma](https://prisma.io/)
<a href="https://jitsu.com/?utm_source=cal.com-gihub"><img height="40px" src="https://jitsu.com/img/powered-by-jitsu.png?gh=true" alt="Jitsu.com"></a>
<a href="https://jitsu.com/?utm_source=cal.com-gihub"><img height="40px" src="https://jitsu.com/img/powered-by-jitsu.png?gh=true" alt="Jitsu.com"></a>
Cal.com is an [open startup](https://cal.com/open) and [Jitsu](https://github.com/jitsucom/jitsu) (an open-source Segment alternative) helps us to track most of the usage metrics.
+39
View File
@@ -0,0 +1,39 @@
# Security
Contact: security@cal.com
Based on [https://supabase.com/.well-known/security.txt](https://supabase.com/.well-known/security.txt)
At Cal.com, we consider the security of our systems a top priority. But no matter how much effort we put into system security, there can still be vulnerabilities present.
If you discover a vulnerability, we would like to know about it so we can take steps to address it as quickly as possible. We would like to ask you to help us better protect our clients and our systems.
## Out of scope vulnerabilities:
- Clickjacking on pages with no sensitive actions.
- Unauthenticated/logout/login CSRF.
- Attacks requiring MITM or physical access to a user's device.
- Any activity that could lead to the disruption of our service (DoS).
- Content spoofing and text injection issues without showing an attack vector/without being able to modify HTML/CSS.
- Email spoofing
- Missing DNSSEC, CAA, CSP headers
- Lack of Secure or HTTP only flag on non-sensitive cookies
- Deadlinks
## Please do the following:
- E-mail your findings to [security@cal.com](mailto:security@cal.com).
- Do not run automated scanners on our infrastructure or dashboard. If you wish to do this, contact us and we will set up a sandbox for you.
- Do not take advantage of the vulnerability or problem you have discovered, for example by downloading more data than necessary to demonstrate the vulnerability or deleting or modifying other people's data,
- Do not reveal the problem to others until it has been resolved,
- Do not use attacks on physical security, social engineering, distributed denial of service, spam or applications of third parties,
- Do provide sufficient information to reproduce the problem, so we will be able to resolve it as quickly as possible. Usually, the IP address or the URL of the affected system and a description of the vulnerability will be sufficient, but complex vulnerabilities may require further explanation.
## What we promise:
- We will respond to your report within 3 business days with our evaluation of the report and an expected resolution date,
- If you have followed the instructions above, we will not take any legal action against you in regard to the report,
- We will handle your report with strict confidentiality, and not pass on your personal details to third parties without your permission,
- We will keep you informed of the progress towards resolving the problem,
- In the public information concerning the problem reported, we will give your name as the discoverer of the problem (unless you desire otherwise), and
- We strive to resolve all problems as quickly as possible, and we would like to play an active role in the ultimate publication on the problem after it is resolved.
+34
View File
@@ -0,0 +1,34 @@
/**
* This is a Playwright script Checkly generated for you based on your Vercel project.
* To learn more about Browser checks and Playwright visit: https://www.checklyhq.com/docs/browser-checks
*/
// Create a Chromium browser
const { chromium } = require('playwright')
// Checkly supports top level await, but we wrap your code in an async function so you can run it locally too.
async function run () {
const browser = await chromium.launch()
const page = await browser.newPage()
// If available, we set the target URL to a preview deployment URL provided by the ENVIRONMENT_URL created by Vercel.
// Otherwise, we use the Production URL.
const targetUrl = process.env.ENVIRONMENT_URL || 'https://app.cal.com'
// We visit the page. This waits for the "load" event by default.
const response = await page.goto(targetUrl)
// If the page doesn't return a successful response code, we fail the check
if (response.status() > 399) {
throw new Error(`Failed with response code ${response.status()}`)
}
// We snap a screenshot.
await page.screenshot({ path: 'screenshot.jpg' })
// We close the page and browser. This is needed for collecting accurate web vitals.
await page.close()
await browser.close()
}
run()
+63 -4
View File
@@ -10,15 +10,74 @@
}
],
"env": {
"BASE_URL": {
"PGSSLMODE": {
"description": "If you use Heroku to deploy Postgres (or use self-signed certs for Postgres) then put 'no-verify' here.",
"value": "no-verify"
},
"NEXT_PUBLIC_WEBAPP_URL": {
"description": "Replace HEROKU_APP_NAME with the name given to your app",
"value": "https://HEROKU_APP_NAME.herokuapp.com"
"value": "https://HEROKU_APP_NAME.herokuapp.com",
"required": "true"
},
"CALENDSO_ENCRYPTION_KEY": {
"description": "Application Key for symmetric encryption and decryption. Must be 32 bytes for AES256 encryption algorithm.",
"value": "secret"
"value": "secret",
"required": "true"
},
"NEXTAUTH_SECRET": "secret"
"NEXTAUTH_URL": {
"description": "Replace HEROKU_APP_NAME with the name given to your app",
"value": "https://HEROKU_APP_NAME.herokuapp.com"
},
"NEXTAUTH_SECRET": {
"description": "Cookie encryption key",
"generator": "secret",
"required": "true"
},
"NEXT_PUBLIC_LICENSE_CONSENT": {
"description": "License consent",
"value": "true",
"required": "true"
},
"CRON_API_KEY": {
"description": "ApiKey for cronjobs",
"value": ""
},
"SEND_FEEDBACK_EMAIL": {
"description": "Send feedback email",
"value": ""
},
"SENDGRID_API_KEY": {
"description": "Sendgrid api key. Used for email reminders in workflows",
"value": ""
},
"SENDGRID_EMAIL": {
"description": "Sendgrid email. Used for email reminders in workflows",
"value": ""
},
"EMAIL_FROM": {
"description": "Configures the global From: header whilst sending emails",
"value": ""
},
"EMAIL_SERVER_HOST": {
"description": "Configures the global SMTP server host",
"value": "smtp.gmail.com"
},
"EMAIL_SERVER_PORT": {
"description": "Configures the global SMTP server port",
"value": "465"
},
"EMAIL_SERVER_USER": {
"description": "Configures the global SMTP server user",
"value": "<gmail_emailAddress>"
},
"EMAIL_SERVER_PASSWORD": {
"description": "Configures the global SMTP server password",
"value": "<gmail_app_password>"
},
"NEXT_PUBLIC_TEAM_IMPERSONATION": {
"description": "Set the following value to true if you wish to enable Team Impersonation",
"value": "false"
}
},
"scripts": {
"postdeploy": "cd packages/prisma && npx prisma migrate deploy"
+8 -7
View File
@@ -4,26 +4,27 @@
"description": "",
"main": "index.js",
"scripts": {
"build": "next build",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next",
"dev": "PORT=4000 next",
"lint": "next lint",
"type-check": "tsc --pretty --noEmit",
"lint": "eslint . --ignore-path .gitignore",
"lint:fix": "eslint . --ext .ts,.js,.tsx,.jsx --fix",
"lint:report": "eslint . --format json --output-file ../../lint-results/docs.json",
"start": "PORT=4000 next start",
"build": "next build"
"type-check": "tsc --pretty --noEmit"
},
"author": "Cal.com, Inc.",
"license": "MIT",
"dependencies": {
"iframe-resizer-react": "^1.1.0",
"next": "^12.1.6",
"next": "^12.2.5",
"nextra": "^1.1.0",
"nextra-theme-docs": "^1.2.2",
"react": "^18.1.0",
"react-dom": "^18.1.0"
"react": "^18.2.0",
"react-dom": "^18.2.0"
},
"devDependencies": {
"@calcom/config": "*",
"eslint": "^8.15.0"
"eslint": "^8.22.0"
}
}
+2 -2
View File
@@ -10,10 +10,10 @@ We use a number of style guides written by other amazing companies, simply becau
We don't expect you to study every single rule of each style guide, but these are great reference points as to how your code should be styled. We may reject a pull request if your code style significantly differs from these style guides however.
## ESLint & Prettier
Calendso uses the ESLint and Prettier formatting tools, and the repository comes with defined rules for each tool. We recommend setting up both tools and using these to help automatically style your code to our guidelines.
Cal.com uses the ESLint and Prettier formatting tools, and the repository comes with defined rules for each tool. We recommend setting up both tools and using these to help automatically style your code to our guidelines.
## JavaScript/TypeScript
We use the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) for all JavaScript and Typescript code.
We use the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) for all JavaScript and TypeScript code.
## HTML & CSS
We use the [Google HTML/CSS Style Guide](https://google.github.io/styleguide/htmlcssguide.html) for any HTML and CSS markup. However, exceptions to the HTML guide apply where JSX differentiates from standard HTML.
+1 -1
View File
@@ -25,7 +25,7 @@ To remove a product from your account that isn't listed in your Google Account,
6. In the third page (Test Users), add the Google account(s) you'll using. Make sure the details are correct on the last page of the wizard and your consent screen will be configured.
7. Now select [Credentials](https://console.cloud.google.com/apis/credentials) from the side pane and then select Create Credentials. Select the OAuth Client ID option.
8. Select Web Application as the Application Type.
9. Under Authorized redirect URI's, select Add URI and then add the URI `<CALENDSO URL>/api/integrations/googlecalendar/callback` replacing CALENDSO URL with the URI at which your application runs.
9. Under Authorized redirect URI's, select Add URI and then add the two URIs `<CALENDSO URL>/api/integrations/googlecalendar/callback` and `<CALENDSO URL>/api/auth/callback/google` replacing CALENDSO URL with the URI at which your application runs.
10. The key will be created and you will be redirected back to the Credentials page. Select the newly generated client ID under OAuth 2.0 Client IDs.
11. Select Download JSON. Copy the contents of this file and paste the entire JSON string in the .env file as the value for GOOGLE_API_CREDENTIALS key.
+1 -2
View File
@@ -34,7 +34,6 @@ Here is what you need to be able to run Cal.
```sh
cp apps/web/.env.example apps/web/.env
cp packages/prisma/.env.example packages/prisma/.env
```
1. Install packages with yarn
@@ -54,7 +53,7 @@ yarn dx
### Manual setup
1. Configure database in the `packages/prisma/.env` file. Replace `<user>`, `<pass>`, `<db-host>`, `<db-port>` with their applicable values
1. Configure database in the `.env` file. Replace `<user>`, `<pass>`, `<db-host>`, `<db-port>` with their applicable values
```text
DATABASE_URL='postgresql://<user>:<pass>@<db-host>:<db-port>'
+1 -1
View File
@@ -18,7 +18,7 @@ You need a PostgresDB database hosted somewhere. [Heroku](https://www.heroku.com
git clone https://github.com/<your-fork>/cal.com.git
```
2. Copy the `.env.example` file in `apps/web`, rename it to `.env` and fill it with your settings ([See manual setup](https://github.com/calcom/cal.com#manual) and [Obtaining the Google API Credentials](https://github.com/calcom/cal.com#obtaining-the-google-api-credentials))
2. Copy the `.env.example` file in `apps/web`, rename it to `.env` and fill it with your settings ([See manual setup](https://github.com/calcom/cal.com#manual-setup) and [Obtaining the Google API Credentials](https://github.com/calcom/cal.com#obtaining-the-google-api-credentials))
3. Install packages with `yarn`
+5 -3
View File
@@ -1,3 +1,5 @@
import { SEO_IMG_DEFAULT, DOCS_URL } from "@calcom/lib/constants";
const themeConfig = {
github: "https://github.com/calcom/cal.com",
docsRepositoryBase: "https://github.com/calcom/cal.com/blob/main/apps/docs/pages",
@@ -18,11 +20,11 @@ const themeConfig = {
content="Explore advice and explanations for all of our features, and discover new tips and tricks to get the most out of your subscription."
/>
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://cal.com/og-image.png" />
<meta name="twitter:image" content={SEO_IMG_DEFAULT} />
<meta name="twitter:site:domain" content="docs.cal.com" />
<meta name="twitter:url" content="https://docs.cal.com" />
<meta name="twitter:url" content={DOCS_URL} />
<meta name="og:title" content="Cal.com Documentation" />
<meta name="og:image" content="https://cal.com/og-image.png" />
<meta name="og:image" content={SEO_IMG_DEFAULT} />
<meta name="apple-mobile-web-app-title" content="Cal.com Docs" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
+38
View File
@@ -0,0 +1,38 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# next.js
/.next/
/out/
next-env.d.ts
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# local env files
.env*.local
# vercel
.vercel
# typescript
*.tsbuildinfo
storybook-static/
+61
View File
@@ -0,0 +1,61 @@
const path = require("path");
module.exports = {
stories: ["../stories/**/*.stories.mdx", "../stories/**/*.stories.@(js|jsx|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"storybook-addon-designs",
"@storybook/addon-a11y",
"storybook-addon-next",
],
framework: "@storybook/react",
core: {
builder: "webpack5",
},
webpackFinal: async (config) => {
/**
* Fixes font import with /
* @see https://github.com/storybookjs/storybook/issues/12844#issuecomment-867544160
*/
config.resolve.roots = [path.resolve(__dirname, "../public"), "node_modules"];
config.resolve.alias = {
...config.resolve.alias,
"@/interfaces": path.resolve(__dirname, "../interfaces"),
};
/**
* Why webpack5... Just why?
* @type {{console: boolean, process: boolean, timers: boolean, os: boolean, querystring: boolean, sys: boolean, fs: boolean, url: boolean, crypto: boolean, path: boolean, zlib: boolean, punycode: boolean, util: boolean, stream: boolean, assert: boolean, string_decoder: boolean, domain: boolean, vm: boolean, tty: boolean, http: boolean, buffer: boolean, constants: boolean, https: boolean, events: boolean}}
*/
config.resolve.fallback = {
fs: false,
assert: false,
buffer: false,
console: false,
constants: false,
crypto: false,
domain: false,
events: false,
http: false,
https: false,
os: false,
path: false,
punycode: false,
process: false,
querystring: false,
stream: false,
string_decoder: false,
sys: false,
timers: false,
tty: false,
url: false,
util: false,
vm: false,
zlib: false,
};
return config;
},
};
@@ -0,0 +1,8 @@
<script>
window.isEmbed = ()=> {
return location.search.includes("embed=")
}
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@500&display=swap');
</style>
+34
View File
@@ -0,0 +1,34 @@
import { RouterContext } from "next/dist/shared/lib/router-context";
import * as NextImage from "next/image";
import "../styles/globals.css";
const OriginalNextImage = NextImage.default;
Object.defineProperty(NextImage, "default", {
configurable: true,
value: (props) => <OriginalNextImage {...props} unoptimized />,
});
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
nextRouter: {
Provider: RouterContext.Provider,
},
};
window.getEmbedNamespace = () => {
const url = new URL(document.URL);
const namespace = url.searchParams.get("embed");
return namespace;
};
window.getEmbedTheme = () => {
return "auto";
};
+21
View File
@@ -0,0 +1,21 @@
# Storybook & UI
Storybook is home to all of our commonly used components. We use this app to visually show all components that we have within the project + automatic type documentation generated for each component.
All changes to storybook/ui must require a visual/code review.
- Visual reviews happen on a tool called [Chormatic](http://chromatic.com/) and these reviews will happen by our product team.
- Code reviews happen as normal on any changes to storybook/ui designs
## Deployment
To deploy this project run
```bash
cd apps/storybook
```
```bash
yarn dev
```
+7
View File
@@ -0,0 +1,7 @@
const withTM = require("next-transpile-modules")(["@calcom/dayjs", "@calcom/ui"]);
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: true,
};
module.exports = withTM(nextConfig);
+65
View File
@@ -0,0 +1,65 @@
{
"name": "@calcom/storybook",
"version": "0.1.0",
"private": true,
"scripts": {
"dev:next": "next dev",
"build:next": "next build",
"start": "next start",
"lint": "eslint . --ignore-path .gitignore",
"lint:report": "eslint . --format json --output-file ../../lint-results/storybook.json",
"dev": "start-storybook -p 6006",
"build": "build-storybook",
"chromatic": "npx chromatic --project-token=56fadc9ab496"
},
"dependencies": {
"@calcom/dayjs": "*",
"@calcom/ui": "*",
"@radix-ui/react-avatar": "^0.1.4",
"@radix-ui/react-collapsible": "^0.1.0",
"@radix-ui/react-dialog": "^0.1.0",
"@radix-ui/react-dropdown-menu": "^0.1.1",
"@radix-ui/react-id": "^0.1.0",
"@radix-ui/react-radio-group": "^0.1.1",
"@radix-ui/react-slider": "^0.1.1",
"@radix-ui/react-switch": "^0.1.1",
"@radix-ui/react-tooltip": "^1.0.0",
"next": "^12.2.5",
"next-transpile-modules": "^9.0.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-feather": "^2.0.10",
"react-hot-toast": "^2.3.0"
},
"devDependencies": {
"@babel/core": "^7.18.10",
"@calcom/config": "*",
"@storybook/addon-a11y": "^6.5.10",
"@storybook/addon-actions": "^6.5.10",
"@storybook/addon-essentials": "^6.5.10",
"@storybook/addon-interactions": "^6.5.10",
"@storybook/addon-links": "^6.5.10",
"@storybook/addon-postcss": "^2.0.0",
"@storybook/builder-vite": "^0.2.2",
"@storybook/builder-webpack5": "^6.5.10",
"@storybook/manager-webpack5": "^6.5.10",
"@storybook/react": "^6.5.10",
"@tailwindcss/line-clamp": "^0.4.0",
"@types/node": "16.9.1",
"@types/react": "^18.0.17",
"@types/react-dom": "18.0.4",
"autoprefixer": "^10.4.8",
"babel-loader": "^8.2.5",
"chromatic": "^6.7.4",
"eslint": "^8.22.0",
"postcss": "^8.4.16",
"postcss-loader": "^7.0.0",
"storybook-addon-designs": "^6.3.1",
"storybook-addon-next": "^1.6.7",
"tailwindcss": "^3.1.8",
"tsconfig-paths-webpack-plugin": "^3.5.2",
"typescript": "^4.7.4"
},
"readme": "ERROR: No README data found!",
"_id": "@calcom/storybook@0.1.0"
}
+9
View File
@@ -0,0 +1,9 @@
import type { AppProps } from "next/app";
import "../styles/globals.css";
function MyApp({ Component, pageProps }: AppProps) {
return <Component {...pageProps} />;
}
export default MyApp;
+63
View File
@@ -0,0 +1,63 @@
import type { NextPage } from "next";
import Head from "next/head";
import Image from "next/image";
const Home: NextPage = () => {
return (
<div className={styles.container}>
<Head>
<title>Create Next App</title>
<meta name="description" content="Generated by create next app" />
<link rel="icon" href="/favicon.ico" />
</Head>
<main className={styles.main}>
<h1 className={styles.title}>
Welcome to <a href="https://nextjs.org">Next.js!</a>
</h1>
<p className={styles.description}>
Get started by editing <code className={styles.code}>pages/index.tsx</code>
</p>
<div className={styles.grid}>
<a href="https://nextjs.org/docs" className={styles.card}>
<h2>Documentation &rarr;</h2>
<p>Find in-depth information about Next.js features and API.</p>
</a>
<a href="https://nextjs.org/learn" className={styles.card}>
<h2>Learn &rarr;</h2>
<p>Learn about Next.js in an interactive course with quizzes!</p>
</a>
<a href="https://github.com/vercel/next.js/tree/canary/examples" className={styles.card}>
<h2>Examples &rarr;</h2>
<p>Discover and deploy boilerplate example Next.js projects.</p>
</a>
<a
href="https://vercel.com/new?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
className={styles.card}>
<h2>Deploy &rarr;</h2>
<p>Instantly deploy your Next.js site to a public URL with Vercel.</p>
</a>
</div>
</main>
<footer className={styles.footer}>
<a
href="https://vercel.com?utm_source=create-next-app&utm_medium=default-template&utm_campaign=create-next-app"
target="_blank"
rel="noopener noreferrer">
Powered by{" "}
<span className={styles.logo}>
<Image src="/vercel.svg" alt="Vercel Logo" width={72} height={16} />
</span>
</a>
</footer>
</div>
);
};
export default Home;
+6
View File
@@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
};
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

+4
View File
@@ -0,0 +1,4 @@
<svg width="283" height="64" viewBox="0 0 283 64" fill="none"
xmlns="http://www.w3.org/2000/svg">
<path d="M141.04 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.46 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM248.72 16c-11.04 0-19 7.2-19 18s8.96 18 20 18c6.67 0 12.55-2.64 16.19-7.09l-7.65-4.42c-2.02 2.21-5.09 3.5-8.54 3.5-4.79 0-8.86-2.5-10.37-6.5h28.02c.22-1.12.35-2.28.35-3.5 0-10.79-7.96-17.99-19-17.99zm-9.45 14.5c1.25-3.99 4.67-6.5 9.45-6.5 4.79 0 8.21 2.51 9.45 6.5h-18.9zM200.24 34c0 6 3.92 10 10 10 4.12 0 7.21-1.87 8.8-4.92l7.68 4.43c-3.18 5.3-9.14 8.49-16.48 8.49-11.05 0-19-7.2-19-18s7.96-18 19-18c7.34 0 13.29 3.19 16.48 8.49l-7.68 4.43c-1.59-3.05-4.68-4.92-8.8-4.92-6.07 0-10 4-10 10zm82.48-29v46h-9V5h9zM36.95 0L73.9 64H0L36.95 0zm92.38 5l-27.71 48L73.91 5H84.3l17.32 30 17.32-30h10.39zm58.91 12v9.69c-1-.29-2.06-.49-3.2-.49-5.81 0-10 4-10 10V51h-9V17h9v9.2c0-5.08 5.91-9.2 13.2-9.2z" fill="#000"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

+26
View File
@@ -0,0 +1,26 @@
import { ComponentMeta } from "@storybook/react";
import Avatar from "@calcom/ui/v2/core/Avatar";
export default {
title: "Avatar",
component: Avatar,
} as ComponentMeta<typeof Avatar>;
export const Default = () => {
return (
<>
<Avatar size="sm" alt="Avatar Story" gravatarFallbackMd5="Ui@CAL.com" />
<Avatar size="lg" alt="Avatar Story" gravatarFallbackMd5="Ui@CAL.com" />
</>
);
};
export const Accepted = () => {
return (
<>
<Avatar size="sm" alt="Avatar Story" gravatarFallbackMd5="Ui@CAL.com" accepted />
<Avatar size="lg" alt="Avatar Story" gravatarFallbackMd5="Ui@CAL.com" accepted />
</>
);
};
@@ -0,0 +1,60 @@
import { TooltipProvider } from "@radix-ui/react-tooltip";
import { ComponentMeta } from "@storybook/react";
import AvatarGroup from "@calcom/ui/v2/core/AvatarGroup";
export default {
title: "Avatar/Group",
component: AvatarGroup,
} as ComponentMeta<typeof AvatarGroup>;
const IMAGES = [
{
image: "https://cal.com/stakeholder/peer.jpg",
alt: "Peer",
title: "Peer Richelsen",
},
{
image: "https://cal.com/stakeholder/bailey.jpg",
alt: "Bailey",
title: "Bailey Pumfleet",
},
{
image: "https://cal.com/stakeholder/alex-van-andel.jpg",
alt: "Alex",
title: "Alex Van Andel",
},
{
image: "https://cal.com/stakeholder/ciaran.jpg",
alt: "Ciarán",
title: "Ciarán Hanrahan",
},
{
image: "https://cal.com/stakeholder/peer.jpg",
alt: "Peer",
title: "Peer Richelsen",
},
{
image: "https://cal.com/stakeholder/bailey.jpg",
alt: "Bailey",
title: "Bailey Pumfleet",
},
{
image: "https://cal.com/stakeholder/alex-van-andel.jpg",
alt: "Alex",
title: "Alex Van Andel",
},
{
image: "https://cal.com/stakeholder/ciaran.jpg",
alt: "Ciarán",
title: "Ciarán Hanrahan",
},
];
export const Default = () => {
return (
<TooltipProvider>
<AvatarGroup size="lg" items={IMAGES} />
</TooltipProvider>
);
};
+58
View File
@@ -0,0 +1,58 @@
import { ComponentMeta } from "@storybook/react";
import { Bell } from "react-feather";
import Badge from "@calcom/ui/v2/core/Badge";
export default {
title: "Badge",
component: Badge,
} as ComponentMeta<typeof Badge>;
export const All = () => (
<div className="">
<h1>Default</h1>
<div className="mb-4 flex space-x-2">
<Badge variant="gray">Badge</Badge>
<Badge variant="red">Badge</Badge>
<Badge variant="green">Badge</Badge>
<Badge variant="orange">Badge</Badge>
<Badge variant="blue">Badge</Badge>
</div>
<h1>Icons</h1>
<div className="mb-4 flex space-x-2">
<Badge variant="gray" StartIcon={Bell}>
Badge
</Badge>
<Badge variant="red" StartIcon={Bell}>
Badge
</Badge>
<Badge variant="green" StartIcon={Bell}>
Badge
</Badge>
<Badge variant="orange" StartIcon={Bell}>
Badge
</Badge>
<Badge variant="blue" StartIcon={Bell}>
Badge
</Badge>
</div>
<h1>Large</h1>
<div className="flex space-x-2">
<Badge variant="gray" size="lg">
Badge
</Badge>
<Badge variant="red" size="lg">
Badge
</Badge>
<Badge variant="green" size="lg">
Badge
</Badge>
<Badge variant="orange" size="lg">
Badge
</Badge>
<Badge variant="blue" size="lg">
Badge
</Badge>
</div>
</div>
);
+46
View File
@@ -0,0 +1,46 @@
import { ComponentStory, ComponentMeta } from "@storybook/react";
import { Info } from "react-feather";
import Banner from "@calcom/ui/v2/core/banner";
export default {
title: "Banner",
component: Banner,
} as ComponentMeta<typeof Banner>;
export const Default = () => {
return (
<Banner
variant="neutral"
title="Summarise what happened"
description="Describe what can be done about it here."
Icon={Info}
onDismiss={() => console.log("dismissed")}
/>
);
};
export const Warning = () => {
return (
<Banner
variant="warning"
title="Summarise what happened"
description="Describe what can be done about it here."
Icon={Info}
onDismiss={() => console.log("dismissed")}
/>
);
};
export const Error = () => {
return (
<Banner
variant="error"
title="Summarise what happened"
description="Describe what can be done about it here."
errorMessage="Event creation failed"
Icon={Info}
onDismiss={() => console.log("dismissed")}
/>
);
};
@@ -0,0 +1,22 @@
import { ComponentMeta } from "@storybook/react";
import Breadcrumb, { BreadcrumbItem } from "@calcom/ui/v2/core/Breadcrumb";
export default {
title: "Breadcrumbs",
component: Breadcrumb,
} as ComponentMeta<typeof Breadcrumb>;
export const Default = () => (
<Breadcrumb>
<BreadcrumbItem href="/">Home</BreadcrumbItem>
<BreadcrumbItem href="/">Test</BreadcrumbItem>
</Breadcrumb>
);
Default.parameters = {
nextRouter: {
path: "/test",
asPath: "/test",
},
};
+98
View File
@@ -0,0 +1,98 @@
import { TooltipProvider } from "@radix-ui/react-tooltip";
import { ComponentMeta, ComponentStory } from "@storybook/react";
import { Trash2 } from "react-feather";
import Button from "@calcom/ui/v2/core/Button";
export default {
title: "Button",
component: Button,
argTypes: {
color: {
options: ["primary", "secondary", "minimal", "destructive"],
control: { type: "select" },
},
disabled: {
options: [true, false],
control: { type: "boolean" },
},
loading: {
options: [true, false],
control: { type: "boolean" },
},
size: {
options: ["base", "lg", "icon"],
control: { type: "radio" },
},
},
} as ComponentMeta<typeof Button>;
const Template: ComponentStory<typeof Button> = (args) => <Button {...args} />;
export const All = () => (
<div>
<TooltipProvider>
<h1>Primary</h1>
<div className="flex space-x-2">
<Button aria-label="Button Text">Button Text</Button>
<Button disabled aria-label="Button Text">
Button Text
</Button>
</div>
<h1>Secondary</h1>
<div className="flex space-x-2">
<Button color="secondary" aria-label="Button Text">
Button Text
</Button>
<Button disabled color="secondary" aria-label="Button Text">
Button Text
</Button>
<Button size="icon" color="secondary" StartIcon={Trash2} aria-label="Button Text" />
</div>
<h1>Minimal</h1>
<div className="flex">
<Button color="minimal" aria-label="Button Text">
Button Text
</Button>
<Button disabled color="minimal" aria-label="Button Text">
Button Text
</Button>
<Button size="icon" color="minimal" StartIcon={Trash2} aria-label="Button Text" />
</div>
<h1>Destructive</h1>
<Button size="icon" color="destructive" StartIcon={Trash2} aria-label="Button Text" />
<h1>Tooltip</h1>
<Button
tooltip="Deletes EventTypes"
size="icon"
color="destructive"
StartIcon={Trash2}
aria-label="Button Text"
/>
</TooltipProvider>
</div>
);
export const Default = Template.bind({});
Default.args = {
color: "primary",
children: "Button Text",
};
export const Disabled = Template.bind({});
Disabled.args = {
...Default.args,
disabled: true,
};
export const Loading = Template.bind({});
Loading.args = {
...Default.args,
loading: true,
};
export const Icon = Template.bind({});
Icon.args = {
color: "secondary",
StartIcon: Trash2,
size: "icon",
};
@@ -0,0 +1,40 @@
import { TooltipProvider } from "@radix-ui/react-tooltip";
import { ComponentMeta } from "@storybook/react";
import { ArrowLeft, ArrowRight, Clipboard, Navigation2, Trash2 } from "react-feather";
import Button from "@calcom/ui/v2/core/Button";
import ButtonGroup from "@calcom/ui/v2/core/ButtonGroup";
export default {
title: "Button Group",
component: ButtonGroup,
decorators: [
(Story) => (
<TooltipProvider>
<Story />
</TooltipProvider>
),
],
} as ComponentMeta<typeof ButtonGroup>;
export const Default = () => (
<ButtonGroup>
<Button StartIcon={Trash2} size="icon" color="secondary" />
<Button StartIcon={Navigation2} size="icon" color="secondary" />
<Button StartIcon={Clipboard} size="icon" color="secondary" />
</ButtonGroup>
);
export const Combined = () => (
<div className="flex flex-col space-y-2">
<ButtonGroup combined>
<Button StartIcon={Trash2} size="icon" color="secondary" combined />
<Button StartIcon={Navigation2} size="icon" color="secondary" combined />
<Button StartIcon={Clipboard} size="icon" color="secondary" combined />
</ButtonGroup>
<ButtonGroup combined>
<Button StartIcon={ArrowLeft} size="icon" color="secondary" combined />
<Button StartIcon={ArrowRight} size="icon" color="secondary" combined />
</ButtonGroup>
</div>
);
+79
View File
@@ -0,0 +1,79 @@
import { ComponentMeta } from "@storybook/react";
import { useState } from "react";
import Card, { BaseCardProps } from "@calcom/ui/v2/core/Card";
export default {
title: "Cards",
component: Card,
} as ComponentMeta<typeof Card>;
const profileProps: BaseCardProps[] = [
{
variant: "ProfileCard",
title: "Alex Fisher",
image:
"https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80",
description: "Co-founder at Attio. Book a meeting to discuss enterprise deals.",
},
{
variant: "ProfileCard",
title: "Julian Wan",
image:
"https://images.unsplash.com/photo-1570295999919-56ceb5ecca61?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1760&q=80",
description: "Co-founder at Attio. Book a meeting to discuss enterprise deals.",
},
];
export const Profile = () => {
return (
<div className="flex w-full space-x-2 bg-gray-200 p-4">
<Card {...profileProps[0]} />
<Card {...profileProps[1]} />
</div>
);
};
const appStoreProps: BaseCardProps = {
variant: "AppStore",
title: "Giphy",
image: "https://app.cal.com/api/app-store/giphy/icon.svg",
description: "Add GIFs to spice up your booking confirmations.",
actionButton: {
href: "#",
child: "View Details",
},
};
export const AppStore = () => {
return (
<div className="w-full bg-gray-200 p-4">
<Card {...appStoreProps} />
</div>
);
};
const sidebarCardProps: BaseCardProps = {
variant: "SidebarCard",
thumbnailUrl: "https://img.youtube.com/vi/60HJt8DOVNo/0.jpg",
mediaLink: "https://www.youtube.com/watch?v=60HJt8DOVNo",
title: "Dynamic boooking links",
description: "Booking link that allows people to quickly schedule meetings.",
learnMore: {
href: "https://cal.com/blog/cal-v-1-9",
text: "Learn more",
},
};
export const SidebarCard = () => {
const [visible, setVisible] = useState(true); // save state in localStorage, cookie or db
return (
<header className="w-full max-w-[225px] bg-gray-100 p-3">
{visible && (
<div>
<Card {...sidebarCardProps} actionButton={{ onClick: () => setVisible(false), child: "Dismiss" }} />
</div>
)}
</header>
);
};
@@ -0,0 +1,31 @@
import { ComponentMeta } from "@storybook/react";
import Checkbox from "@calcom/ui/v2/core/form/Checkbox";
export default {
title: "Checkbox",
component: Checkbox,
} as ComponentMeta<typeof Checkbox>;
export const All = () => (
<div className="flex flex-col space-y-2">
<Checkbox label="Default" description="Toggle on and off something" />
<Checkbox label="Error" description="Toggle on and off something" error />
<Checkbox label="Disabled" description="Toggle on and off something" disabled />
<Checkbox label="Disabled Checked" description="Toggle on and off something" checked disabled />
<hr />
<Checkbox description="Default" descriptionAsLabel />
<Checkbox description="Error" descriptionAsLabel error />
<Checkbox description="Disabled" descriptionAsLabel disabled />
<Checkbox description="Disabled" descriptionAsLabel disabled checked />
</div>
);
export const CheckboxField = () => <Checkbox description="Default" descriptionAsLabel />;
export const CheckboxError = () => <Checkbox description="Error" descriptionAsLabel />;
export const CheckboxDisabled = () => (
<>
<Checkbox description="Disabled" descriptionAsLabel disabled />
<Checkbox description="Disabled" descriptionAsLabel disabled checked />
</>
);
+208
View File
@@ -0,0 +1,208 @@
import { useState } from "react";
import ColorPicker from "@calcom/ui/v2/core/colorpicker";
// eslint-disable-next-line import/no-anonymous-default-export
export default {
title: "Colors",
component: ColorPicker,
};
const COLORS = {
brand: {
50: "#f3f3f4",
100: "#e7e8e9",
200: "#c4c5c9",
300: "#a0a3a9",
400: "#585d68",
500: "#111827", // Brand color
600: "#0f1623",
700: "#0d121d",
800: "#0a0e17",
900: "#080c13",
},
gray: {
50: "#F8F8F8",
100: "#F5F5F5",
200: "#E1E1E1",
300: "#CFCFCF",
400: "#ACACAC",
500: "#888888",
600: "#494949",
700: "#3E3E3E",
800: "#313131",
900: "#292929",
},
neutral: {
50: "#F8F8F8",
100: "#F5F5F5",
200: "#E1E1E1",
300: "#CFCFCF",
400: "#ACACAC",
500: "#888888",
600: "#494949",
700: "#3E3E3E",
800: "#313131",
900: "#292929",
},
primary: {
50: "#F4F4F4",
100: "#E8E8E8",
200: "#C6C6C6",
300: "#A3A3A3",
400: "#5F5F5F",
500: "#1A1A1A",
600: "#171717",
700: "#141414",
800: "#101010",
900: "#0D0D0D",
},
secondary: {
50: "#F5F8F7",
100: "#EBF0F0",
200: "#CDDAD9",
300: "#AEC4C2",
400: "#729894",
500: "#356C66",
600: "#30615C",
700: "#28514D",
800: "#20413D",
900: "#223B41",
},
red: {
50: "#FEF2F2",
100: "#FEE2E2",
200: "#FECACA",
300: "#FCA5A5",
400: "#F87171",
500: "#EF4444",
600: "#DC2626",
700: "#B91C1C",
800: "#991B1B",
900: "#7F1D1D",
},
orange: {
50: "#FFF7ED",
100: "#FFEDD5",
200: "#FED7AA",
300: "#FDBA74",
400: "#FB923C",
500: "#F97316",
600: "#EA580C",
700: "#C2410C",
800: "#9A3412",
900: "#7C2D12",
},
green: {
50: "#ECFDF5",
100: "#D1FAE5",
200: "#A7F3D0",
300: "#6EE7B7",
400: "#34D399",
500: "#10B981",
600: "#059669",
700: "#047857",
800: "#065F46",
900: "#064E3B",
},
};
export const All = () => {
return (
<div className="w-full">
<div>
{Object.keys(COLORS.brand).map((color) => (
<div className="flex flex-row space-x-2" key={COLORS.brand[color]}>
<div className="w-full">Brand</div>
<div className="w-full">{color}</div>
<div className="w-full">{COLORS.brand[color]}</div>
<div
style={{
backgroundColor: COLORS.brand[color],
width: "100%",
height: "32px",
}}
/>
</div>
))}
<hr />
{Object.keys(COLORS.gray).map((color) => (
<div className="flex flex-row space-x-2" key={COLORS.gray[color]}>
<div className="w-full">gray</div>
<div className="w-full">{color}</div>
<div className="w-full">{COLORS.gray[color]}</div>
<div
style={{
backgroundColor: COLORS.gray[color],
width: "100%",
height: "32px",
}}
/>
</div>
))}
<hr />
{Object.keys(COLORS.secondary).map((color) => (
<div className="flex flex-row space-x-2" key={COLORS.secondary[color]}>
<div className="w-full">secondary</div>
<div className="w-full">{color}</div>
<div className="w-full">{COLORS.secondary[color]}</div>
<div
style={{
backgroundColor: COLORS.secondary[color],
width: "100%",
height: "32px",
}}
/>
</div>
))}
<hr />
{Object.keys(COLORS.red).map((color) => (
<div className="flex flex-row space-x-2" key={COLORS.red[color]}>
<div className="w-full">red</div>
<div className="w-full">{color}</div>
<div className="w-full">{COLORS.red[color]}</div>
<div
style={{
backgroundColor: COLORS.red[color],
width: "100%",
height: "32px",
}}
/>
</div>
))}
<hr />
{Object.keys(COLORS.orange).map((color) => (
<div className="flex flex-row space-x-2" key={COLORS.orange[color]}>
<div className="w-full">orange</div>
<div className="w-full">{color}</div>
<div className="w-full">{COLORS.orange[color]}</div>
<div
style={{
backgroundColor: COLORS.orange[color],
width: "100%",
height: "32px",
}}
/>
</div>
))}
<hr />
{Object.keys(COLORS.green).map((color) => (
<div className="flex flex-row space-x-2" key={COLORS.green[color]}>
<div className="w-full">green</div>
<div className="w-full">{color}</div>
<div className="w-full">{COLORS.green[color]}</div>
<div
style={{
backgroundColor: COLORS.green[color],
width: "100%",
height: "32px",
}}
/>
</div>
))}
</div>
</div>
);
};
export const ColorPickerComponent = () => {
const [color, setColor] = useState("3B82F6");
return <ColorPicker defaultValue={color} onChange={(val) => setColor(val)} />;
};
@@ -0,0 +1,17 @@
import { useState } from "react";
import DatePicker from "@calcom/ui/v2/modules/booker/DatePicker";
export default {
title: "Datepicker",
component: DatePicker,
};
export const Default = () => {
const [selected, setSelected] = useState<Date>(new Date());
return (
<div style={{ width: "455px" }}>
<DatePicker selected={selected} onChange={setSelected} locale="en" />
</div>
);
};
@@ -0,0 +1,45 @@
import { ComponentMeta, ComponentStory } from "@storybook/react";
import "@wojtekmaj/react-daterange-picker/dist/DateRangePicker.css";
import { useState } from "react";
import DateRangePicker from "@calcom/ui/v2/core/form/date-range-picker/DateRangePicker";
import "@calcom/ui/v2/core/form/date-range-picker/styles.css";
function getISOLocalDate(date) {
const year = padStart(date.getFullYear(), 4);
const month = padStart(date.getMonth() + 1);
const day = padStart(date.getDate());
return [`${year}-${month}-${day}`];
}
function padStart(num, val = 2) {
const numStr = `${num}`;
if (numStr.length >= val) {
return num;
}
return `0000${numStr}`.slice(-val);
}
export default {
title: "Date Range Picker",
component: DateRangePicker,
} as ComponentMeta<typeof DateRangePicker>;
export const Default: ComponentStory<typeof DateRangePicker> = () => {
const [startDate, setStartDate] = useState<Date>(new Date());
const [endDate, setEndDate] = useState<Date>(new Date());
return (
<div>
<DateRangePicker
startDate={getISOLocalDate(startDate) as unknown as Date}
endDate={getISOLocalDate(endDate) as unknown as Date}
onDatesChange={({ startDate, endDate }) => {
setStartDate(startDate);
setEndDate(endDate);
}}
/>
</div>
);
};
@@ -0,0 +1,26 @@
import { ComponentMeta } from "@storybook/react";
import { Bell } from "react-feather";
import EmptyScreen from "@calcom/ui/v2/core/EmptyScreen";
export default {
title: "pattern/Empty Screen",
component: EmptyScreen,
decorators: [
(Story) => (
<div className="flex items-center justify-center">
<Story />
</div>
),
],
} as ComponentMeta<typeof EmptyScreen>;
export const Default = () => (
<EmptyScreen
Icon={Bell}
headline="Empty State Header"
description="Ullamco dolor nulla sint nulla occaecat aliquip id elit fugiat et excepteur magna. Nisi tempor anim do tempor irure fugiat ad occaecat. Mollit ea eiusmod pariatur sunt deserunt eu eiusmod. Sit reprehenderit "
buttonText="Veniam ut ipsum"
buttonOnClick={() => console.log("Button Clicked")}
/>
);
@@ -0,0 +1,27 @@
import { ComponentMeta } from "@storybook/react";
import { useState } from "react";
import FormStep from "@calcom/ui/v2/core/form/FormStep";
export default {
title: "Form Step",
component: FormStep,
} as ComponentMeta<typeof FormStep>;
export const Default = () => {
const STEPS = 4;
const [currentStep, setCurrentStep] = useState(1);
return (
<div className="flex flex-col items-center justify-center space-y-14 p-20">
<div className="w-1/2">
<FormStep steps={STEPS} currentStep={currentStep} />
<div className="flex space-x-2 pt-4">
<button onClick={() => currentStep - 1 > 0 && setCurrentStep((old) => old - 1)}>Previous</button>
<button onClick={() => currentStep + 1 < STEPS + 1 && setCurrentStep((old) => old + 1)}>
Next
</button>
</div>
</div>
</div>
);
};
@@ -0,0 +1,39 @@
// Disabling until we figure out what is happening with the RouterMock.
import { ComponentMeta } from "@storybook/react";
import { HorizontalTabItemProps } from "@calcom/ui/v2/core/navigation/tabs/HorizontalTabItem";
import HorizontalTabs from "@calcom/ui/v2/core/navigation/tabs/HorizontalTabs";
export default {
title: "Horizontal Tabs",
component: HorizontalTabs,
} as ComponentMeta<typeof HorizontalTabs>;
const HorizontalTabsPropsDefault: HorizontalTabItemProps[] = [
{
name: "Tab One",
href: "/tab-one",
},
{
name: "Tab Two",
href: "/tab-two",
},
{
name: "Tab Disabled",
href: "/tab-disabled",
disabled: true,
},
];
export const Default = () => (
<div className="w-full p-4">
<HorizontalTabs tabs={HorizontalTabsPropsDefault} />
</div>
);
Default.parameters = {
nextRouter: {
path: "/[page]",
asPath: "/tab-one",
},
};
+68
View File
@@ -0,0 +1,68 @@
import { ComponentMeta, ComponentStory } from "@storybook/react";
import { Copy } from "react-feather";
import { TextAreaField, TextField } from "@calcom/ui/v2/core/form/fields";
import DatePicker from "@calcom/ui/v2/modules/booker/DatePicker";
export default {
title: "Inputs",
component: TextField,
argTypes: {
disabled: {
options: [false, true],
},
},
} as ComponentMeta<typeof TextField>;
const TextInputTemplate: ComponentStory<typeof TextField> = (args) => <TextField {...args} />;
// name="demo" label="Demo Label" hint="Hint text"
export const TextInput = TextInputTemplate.bind({});
TextInput.args = {
name: "demo",
label: "Demo Label",
hint: "Hint Text",
disabled: false,
};
export const TextInputPrefix = TextInputTemplate.bind({});
TextInputPrefix.args = {
name: "demo",
label: "Demo Label",
hint: "Hint Text",
addOnLeading: "https://",
disabled: false,
};
export const TextInputSuffix = TextInputTemplate.bind({});
TextInputSuffix.args = {
name: "demo",
label: "Demo Label",
hint: "Hint Text",
addOnSuffix: "Minutes",
disabled: false,
};
export const TextInputPrefixIcon = TextInputTemplate.bind({});
TextInputPrefixIcon.args = {
name: "demo",
label: "Demo Label",
hint: "Hint Text",
addOnFilled: false,
addOnSuffix: <Copy />,
disabled: false,
};
export const TextInputSuffixIcon = TextInputTemplate.bind({});
TextInputSuffixIcon.args = {
name: "demo",
label: "Demo Label",
hint: "Hint Text",
addOnFilled: false,
addOnLeading: <Copy />,
disabled: false,
};
export const TextAreaInput: ComponentStory<typeof TextAreaField> = () => (
<TextAreaField name="Text-area-input" label="Text Area" />
);
export const DatePickerInput: ComponentStory<typeof DatePicker> = () => <DatePicker date={new Date()} />;
+50
View File
@@ -0,0 +1,50 @@
import { useState } from "react";
import { Info } from "react-feather";
import { Button, Dialog, DialogContent, DialogTrigger, TextField } from "@calcom/ui/v2";
export default {
title: "pattern/Modal",
component: Dialog,
};
export const Creation = () => {
const [open, setOpen] = useState(false);
return (
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<Button onClick={() => setOpen(true)}>Open Modal</Button>
</DialogTrigger>
<DialogContent
title="Header"
description="Optional Description"
type="creation"
actionText="Create"
actionOnClick={() => setOpen(false)}>
<TextField name="Label" />
<TextField name="Label" />
<TextField name="Label" />
<TextField name="Label" />
</DialogContent>
</Dialog>
);
};
export const Confirmation = () => {
const [open, setOpen] = useState(false);
return (
<Dialog open={open} onOpenChange={setOpen}>
<DialogTrigger asChild>
<Button>Open Modal</Button>
</DialogTrigger>
<DialogContent
title="Header"
description="Optional Description"
type="confirmation"
actionText="Confirm"
Icon={Info}
actionOnClick={() => setOpen(false)}
/>
</Dialog>
);
};
@@ -0,0 +1,24 @@
import { ComponentMeta } from "@storybook/react";
import { Toaster } from "react-hot-toast";
import { Button, showToast } from "@calcom/ui/v2";
export default {
title: "Notifcations-Toasts",
decorators: [
(Story) => (
<>
<Story />
<Toaster />
</>
),
],
} as ComponentMeta<typeof All>; // We have to fake this type as the story for this component isn't really a component.
export const All = () => (
<div className="flex space-x-2">
<Button onClick={() => showToast("This is a Neutral toast", "warning")}>Neutral</Button>
<Button onClick={() => showToast("This is a Success toast", "success")}>Success</Button>
<Button onClick={() => showToast("This is a Error toast", "error")}>Error</Button>
</div>
);
@@ -0,0 +1,52 @@
import { ComponentMeta } from "@storybook/react";
import { Search } from "react-feather";
import { Button, TextField } from "@calcom/ui/v2";
import PageHeader from "@calcom/ui/v2/core/PageHeader";
export default {
title: "pattern/Page Header",
component: PageHeader,
decorators: [
(Story) => (
<div className="">
<Story />
</div>
),
],
} as ComponentMeta<typeof PageHeader>;
export const Default = () => (
<PageHeader title="Title" description="Some description about the header above" />
);
export const ButtonRight = () => (
<PageHeader
title="Title"
description="Some description about the header above"
rightAlignedComponent={<Button>Button Text</Button>}
/>
);
export const ComingSoon = () => (
<PageHeader
title="Title"
description="Some description about the header above"
badgeText="Coming Soon"
badgeVariant="gray"
/>
);
export const SearchInstalledApps = () => (
<PageHeader
title="Search booking"
description="See upcoming and past events booking through your event type link"
rightAlignedComponent={
<TextField
containerClassName="h-9 max-h-9"
addOnLeading={<Search />}
name="search"
labelSrOnly
placeholder="WIP"
/>
}
/>
);
+19
View File
@@ -0,0 +1,19 @@
import * as Radio from "@calcom/ui/v2/core/form/radio-area/Radio";
import { RadioField } from "@calcom/ui/v2/core/form/radio-area/Radio";
export default {
title: "Radio",
component: RadioField,
};
export const RadioGroupDemo = () => {
return (
<form>
<Radio.Group aria-label="View density" defaultValue="default">
<RadioField label="Default" id="r1" value="1" />
<RadioField label="Next" id="r2" value="2" />
<RadioField label="Disabled" id="r3" disabled value="1" />
</Radio.Group>
</form>
);
};
+21
View File
@@ -0,0 +1,21 @@
import { ComponentMeta } from "@storybook/react";
import { Select } from "@calcom/ui/v2";
export default {
title: "Form/Select",
component: Select,
} as ComponentMeta<typeof Select>;
const testOptions = [
{
label: "Select",
value: 0,
},
...[5, 10, 15, 20, 30, 45, 60, 90, 120].map((minutes) => ({
label: minutes + " " + "minutes",
value: minutes,
})),
];
export const Single = () => <Select options={testOptions} />;
+15
View File
@@ -0,0 +1,15 @@
import { ComponentMeta } from "@storybook/react";
import { Switch } from "@calcom/ui/v2";
export default {
title: "Switch",
component: Switch,
} as ComponentMeta<typeof Switch>;
export const All = () => (
<div className="flex flex-col space-y-2">
<p>Checked works in app but storybook doesnt like it</p>
<Switch label="Default" />
</div>
);
@@ -0,0 +1,67 @@
// Disabling until we figure out what is happening with the RouterMock.
import { ComponentMeta } from "@storybook/react";
import { Link } from "react-feather";
import { VerticalTabItem } from "@calcom/ui/v2";
export default {
title: "VerticalTabItem",
component: VerticalTabItem,
} as ComponentMeta<typeof VerticalTabItem>;
const TabItemProps = {
name: "Event Setup",
icon: Link,
href: "/settings/event",
info: "60 mins, Zoom",
};
export const Default = () => (
<div className="h-20 w-full bg-gray-100 p-4">
<VerticalTabItem {...TabItemProps} />
</div>
);
export const Active = () => (
<div className="h-20 w-full bg-gray-100 p-4">
<VerticalTabItem {...TabItemProps} />
</div>
);
// Mocking next router to show active state
Active.parameters = {
nextRouter: {
path: "/settings/[tab]",
asPath: "/settings/event",
},
};
export const Disabled = () => (
<div className="h-20 w-full bg-gray-100 p-4">
<VerticalTabItem {...TabItemProps} disabled />
</div>
);
export const NoIconNoInfo = () => (
<div className="h-20 w-full bg-gray-100 p-4">
<VerticalTabItem name="Event Setup" href="/settings/event" />
</div>
);
export const IconNoInfo = () => (
<div className="h-20 w-full bg-gray-100 p-4">
<VerticalTabItem name="Event Setup" href="/settings/event" icon={Link} />
</div>
);
export const IconNoInfoActive = () => (
<div className="h-20 w-full bg-gray-100 p-4">
<VerticalTabItem name="Event Setup" href="/settings/events" icon={Link} />
</div>
);
IconNoInfoActive.paramaters = {
nextRouter: {
path: "/settings/[tab]",
asPath: "/settings/events",
},
};
@@ -0,0 +1,85 @@
// Disabling until we figure out what is happening with the RouterMock.
import { ComponentMeta } from "@storybook/react";
import { Calendar, Clock, Grid, Link, RefreshCw, User, Users } from "react-feather";
import VerticalTabs from "@calcom/ui/v2/core/navigation/tabs/VerticalTabs";
export default {
title: "Vertical Tabs",
component: VerticalTabs,
} as ComponentMeta<typeof VerticalTabs>;
const VerticalTabsPropsDefault = [
{
name: "Security",
icon: Link,
href: "/security",
},
{
name: "Profile",
icon: User,
href: "/profile",
},
{
name: "Calendar Sync",
icon: RefreshCw,
href: "/cal-sync",
},
{
name: "Teams",
icon: Users,
href: "/Teams",
},
];
export const Default = () => (
<div className="w-full p-4" style={{ backgroundColor: "#F9FAFB" }}>
<VerticalTabs tabs={VerticalTabsPropsDefault} />
</div>
);
Default.parameters = {
nextRouter: {
path: "/[page]",
asPath: "/profile",
},
};
const VerticalTabsPropsInfo = [
{
name: "Event Setup",
icon: Link,
href: "/events",
info: "60 Mins, Zoom",
},
{
name: "Availability",
icon: Calendar,
href: "/availability",
info: "Working Hours",
},
{
name: "Limits",
icon: Clock,
href: "/limits",
info: "Buffers, Limits & more...",
},
{
name: "Apps",
icon: Grid,
href: "/apps",
info: "3 apps - 0 active",
},
];
export const Info = () => (
<div className="w-full p-4" style={{ backgroundColor: "#F9FAFB" }}>
<VerticalTabs tabs={VerticalTabsPropsInfo} />
</div>
);
Info.parameters = {
nextRouter: {
path: "/[page]",
asPath: "/events",
},
};
+14
View File
@@ -0,0 +1,14 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@import "../../../packages/ui/v2/core/form/date-range-picker/styles.css";
@import "../../../node_modules/@wojtekmaj/react-daterange-picker/dist/DateRangePicker.css";
:root {
--brand-color: #292929;
--brand-text-color: #ffffff;
--brand-color-dark-mode: #fafafa;
--brand-text-color-dark-mode: #292929;
font-family: 'Inter', sans-serif;
}
+167
View File
@@ -0,0 +1,167 @@
module.exports = {
content: ["../../packages/ui/**/*.{js,ts,jsx,tsx}", "./stories/**/*.{js,ts,tsx,jsx}"],
darkMode: "class",
theme: {
fontFamily: {
cal: ["Cal Sans", "sans-serif"],
mono: ["Roboto Mono", "monospace"],
},
extend: {
colors: {
/* your primary brand color */
brandcontrast: "var(--brand-text-color)",
darkmodebrand: "var(--brand-color-dark-mode)",
darkmodebrandcontrast: "var(--brand-text-color-dark-mode)",
bookinglightest: "var(--booking-lightest-color)",
bookinglighter: "var(--booking-lighter-color)",
bookinglight: "var(--booking-light-color)",
bookingmedian: "var(--booking-median-color)",
bookingdark: "var(--booking-dark-color)",
bookingdarker: "var(--booking-darker-color)",
bookinghighlight: "var(--booking-highlight-color)",
black: "#111111",
brand: {
// Figure out a way to automate this for self hosted users
// Goto https://javisperez.github.io/tailwindcolorshades to generate your brand color
50: "#d1d5db",
100: "#9ca3af",
200: "#6b7280",
300: "#4b5563",
400: "#374151",
500: "#111827", // Brand color
600: "#0f1623",
700: "#0d121d",
800: "#0a0e17",
900: "#080c13",
DEFAULT: "#111827",
},
gray: {
50: "#F9FAFB",
100: "#F3F4F6",
200: "#E5E7EB",
300: "#D1D5DB",
400: "#9CA3AF",
500: "#6B7280",
600: "#4B5563",
700: "#374151",
800: "#1F2937",
900: "#111827",
},
neutral: {
50: "#F8F8F8",
100: "#F5F5F5",
200: "#E1E1E1",
300: "#CFCFCF",
400: "#ACACAC",
500: "#888888",
600: "#494949",
700: "#3E3E3E",
800: "#313131",
900: "#292929",
},
primary: {
50: "#F4F4F4",
100: "#E8E8E8",
200: "#C6C6C6",
300: "#A3A3A3",
400: "#5F5F5F",
500: "#1A1A1A",
600: "#171717",
700: "#141414",
800: "#101010",
900: "#0D0D0D",
},
secondary: {
50: "#F5F8F7",
100: "#EBF0F0",
200: "#CDDAD9",
300: "#AEC4C2",
400: "#729894",
500: "#356C66",
600: "#30615C",
700: "#28514D",
800: "#20413D",
900: "#223B41",
},
red: {
50: "#FFF5F5",
100: "#FFE3E2",
200: "#FFC9C9",
300: "#FEA8A8",
400: "#FF8787",
500: "#FF6B6B",
600: "#FA5352",
700: "#F03E3F",
800: "#E03130",
900: "#C92B2B",
},
orange: {
50: "#FFF4E5",
100: "#FFE8CC",
200: "#FFD8A8",
300: "#FFBF78",
400: "#FFA94E",
500: "#FF922B",
600: "#FD7E14",
700: "#F76706",
800: "#E8580C",
900: "#D94810",
},
green: {
50: "#EBFCEE",
100: "#D2F9D9",
200: "#B1F2BA",
300: "#8CE99A",
400: "#69DB7C",
500: "#51CF66",
600: "#40C057",
700: "#36B24D",
800: "#2F9E44",
900: "#2B8A3E",
},
blue: {
50: "#E7F5FF",
100: "#D0EBFF",
200: "#A4D8FF",
300: "#74C0FC",
400: "#4DABF7",
500: "#339AF0",
600: "#238BE6",
700: "#1C7ED7",
800: "#1971C2",
900: "#1763AB",
},
},
fontFamily: {
cal: ["inter", "sans-serif"],
mono: ["Roboto Mono", "monospace"],
},
maxHeight: (theme) => ({
0: "0",
97: "25rem",
...theme("spacing"),
full: "100%",
screen: "100vh",
}),
minHeight: (theme) => ({
0: "0",
...theme("spacing"),
full: "100%",
screen: "100vh",
}),
minWidth: (theme) => ({
0: "0",
...theme("spacing"),
full: "100%",
screen: "100vw",
}),
maxWidth: (theme, { breakpoints }) => ({
0: "0",
...theme("spacing"),
...breakpoints(theme("screens")),
full: "100%",
screen: "100vw",
}),
},
},
};
+9
View File
@@ -0,0 +1,9 @@
{
"extends": "@calcom/tsconfig/nextjs.json",
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"],
"compilerOptions": {
"noImplicitAny": false,
"baseUrl": "."
}
}
+11 -7
View File
@@ -3,23 +3,27 @@
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "PORT=4200 next dev",
"build": "next build",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next",
"dev": "PORT=4200 next dev",
"lint": "eslint . --ignore-path .gitignore",
"lint:fix": "eslint . --ext .ts,.js,.tsx,.jsx --fix",
"lint:report": "eslint . --format json --output-file ../../lint-results/swagger.json",
"start": "PORT=4200 next start"
},
"dependencies": {
"highlight.js": "^11.5.1",
"highlight.js": "^11.6.0",
"isarray": "2.0.5",
"next": "12.1.6",
"next": "^12.2.5",
"openapi-snippet": "^0.13.0",
"react": "18.1.0",
"react-dom": "18.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"swagger-ui-react": "4.11.1"
},
"devDependencies": {
"@types/node": "16.9.1",
"@types/react": "18.0.9",
"@types/react": "^18.0.17",
"@types/react-dom": "18.0.4",
"typescript": "4.6.4"
"typescript": "^4.7.4"
}
}
+8 -15
View File
@@ -1,24 +1,17 @@
{
"extends": "@calcom/tsconfig/nextjs.json",
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"baseUrl": ".",
"paths": {
"@lib/*": ["lib/*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
"include": [
"next-env.d.ts",
"../../packages/types/*.d.ts",
"../../packages/types/next-auth.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": ["node_modules"]
}
+4
View File
@@ -21,6 +21,7 @@ playwright/reports/*
# next.js
/.next/
/out/
next-env.d.ts
# production
/build
@@ -64,3 +65,6 @@ tsconfig.tsbuildinfo
# Autogenerated embed content
public/embed
# Copied app-store images
public/app-store
-173
View File
@@ -277,179 +277,6 @@ paths:
type: string
integration:
type: string
/api/availability/day:
patch:
description: Updates the start and end times for a user's availability.
summary: Updates the user's start and end times
tags:
- Availability
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
message:
type: string
requestBody:
content:
application/json:
schema:
type: object
properties:
startMins:
type: string
endMins:
type: string
bufferMins:
type: string
description: ""
/api/availability/eventtype:
post:
description: Adds a new event type for the user.
summary: Adds a new event type
tags:
- Availability
requestBody:
content:
application/json:
schema:
type: object
properties:
title:
type: string
slug:
type: string
description:
type: string
length:
type: string
hidden:
type: boolean
requiresConfirmation:
type: boolean
locations:
type: array
items: {}
eventName:
type: string
customInputs:
type: array
items: {}
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
eventType:
type: object
properties:
title:
type: string
slug:
type: string
description:
type: string
length:
type: string
hidden:
type: boolean
requiresConfirmation:
type: boolean
locations:
type: array
items: {}
eventName:
type: string
customInputs:
type: array
items: {}
"500":
description: Internal Server Error
patch:
description: Updates an event type for the user.
summary: Updates an event type
tags:
- Availability
requestBody:
content:
application/json:
schema:
type: object
properties:
title:
type: string
slug:
type: string
description:
type: string
length:
type: string
hidden:
type: boolean
requiresConfirmation:
type: boolean
locations:
type: array
items: {}
eventName:
type: string
customInputs:
type: array
items: {}
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties:
eventType:
type: object
properties:
title:
type: string
slug:
type: string
description:
type: string
length:
type: string
hidden:
type: boolean
requiresConfirmation:
type: boolean
locations:
type: array
items: {}
eventName:
type: string
customInputs:
type: array
items: {}
"500":
description: Internal Server Error
delete:
description: Deletes an event type for the user.
summary: Deletes an event type
tags:
- Availability
responses:
"200":
description: OK
content:
application/json:
schema:
type: object
properties: {}
"500":
description: Internal Server Error
"/api/book/event":
post:
description: Creates a booking in the user's calendar.
+3 -3
View File
@@ -1,7 +1,7 @@
import { XIcon } from "@heroicons/react/outline";
import { useState } from "react";
import { useLocale } from "@lib/hooks/useLocale";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { Icon } from "@calcom/ui/Icon";
export default function AddToHomescreen() {
const { t } = useLocale();
@@ -40,7 +40,7 @@ export default function AddToHomescreen() {
type="button"
className="-mr-1 flex rounded-md p-2 hover:bg-gray-800 focus:outline-none focus:ring-2 focus:ring-white">
<span className="sr-only">{t("dismiss")}</span>
<XIcon className="h-6 w-6 text-white" aria-hidden="true" />
<Icon.FiX className="h-6 w-6 text-white" aria-hidden="true" />
</button>
</div>
</div>
@@ -4,11 +4,11 @@ import { OptionProps } from "react-select";
import { InstallAppButton } from "@calcom/app-store/components";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import type { App } from "@calcom/types/App";
import { Button } from "@calcom/ui";
import { QueryCell } from "@lib/QueryCell";
import { trpc } from "@lib/trpc";
interface AdditionalCalendarSelectorProps {
isLoading?: boolean;
@@ -45,12 +45,12 @@ const AdditionalCalendarSelector = ({ isLoading }: AdditionalCalendarSelectorPro
const options = data.items.map((item) => ({
label: item.name,
slug: item.slug,
image: item.imageSrc,
image: item.logo,
type: item.type,
}));
return (
<Select
name={"additionalCalendar"}
name="additionalCalendar"
placeholder={t("connect_additional_calendar")}
options={options}
styles={{
@@ -65,11 +65,15 @@ const AdditionalCalendarSelector = ({ isLoading }: AdditionalCalendarSelectorPro
return {
...defaultStyles,
borderRadius: "2px",
"@media only screen and (min-width: 640px)": {
...(defaultStyles["@media only screen and (min-width: 640px)"] as object),
maxWidth: "320px",
},
};
},
}}
isSearchable={false}
className="mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-sm border-gray-300 font-medium text-gray-700 sm:text-sm"
className="mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-sm border-gray-300 text-sm font-medium text-gray-700"
isLoading={isLoading}
components={{ Option: ImageOption }}
/>
+246 -197
View File
@@ -1,26 +1,19 @@
import {
BookOpenIcon,
CheckIcon,
DocumentTextIcon,
ExternalLinkIcon,
FlagIcon,
MailIcon,
PlusIcon,
ShieldCheckIcon,
} from "@heroicons/react/outline";
import { ChevronLeftIcon } from "@heroicons/react/solid";
import Link from "next/link";
import React, { useEffect, useState } from "react";
import useAddAppMutation from "@calcom/app-store/_utils/useAddAppMutation";
import { InstallAppButton } from "@calcom/app-store/components";
import LicenseRequired from "@calcom/features/ee/common/components/LicenseRequired";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import showToast from "@calcom/lib/notification";
import { trpc } from "@calcom/trpc/react";
import { App as AppType } from "@calcom/types/App";
import { Button, SkeletonButton } from "@calcom/ui";
import { Icon } from "@calcom/ui/Icon";
import Shell from "@calcom/ui/Shell";
import Badge from "@calcom/ui/v2/core/Badge";
import Shell from "@components/Shell";
import Badge from "@components/ui/Badge";
export default function App({
const Component = ({
name,
type,
logo,
@@ -36,25 +29,19 @@ export default function App({
email,
tos,
privacy,
}: {
name: string;
type: AppType["type"];
isGlobal?: AppType["isGlobal"];
logo: string;
body: React.ReactNode;
categories: string[];
author: string;
pro?: boolean;
price?: number;
commission?: number;
feeType?: AppType["feeType"];
docs?: string;
website?: string;
email: string; // required
tos?: string;
privacy?: string;
}) {
isProOnly,
}: Parameters<typeof App>[0]) => {
const { t } = useLocale();
const { data: user } = trpc.useQuery(["viewer.me"]);
const mutation = useAddAppMutation(null, {
onSuccess: () => {
showToast("App successfully installed", "success");
},
onError: (error) => {
if (error instanceof Error) showToast(error.message || "App could not be installed", "error");
},
});
const priceInDollar = Intl.NumberFormat("en-US", {
style: "currency",
@@ -90,176 +77,238 @@ export default function App({
getInstalledApp(type);
}, [type]);
const allowedMultipleInstalls = categories.indexOf("calendar") > -1;
return (
<>
<Shell large isPublic>
<div className="-mx-4 md:-mx-8">
<div className="bg-gray-50 px-8">
<Link href="/apps">
<a className="mt-2 inline-flex px-1 py-2 text-sm text-gray-500 hover:bg-gray-100 hover:text-gray-800">
<ChevronLeftIcon className="h-5 w-5" /> {t("browse_apps")}
</a>
</Link>
<div className="items-center justify-between py-4 sm:flex sm:py-8">
<div className="flex">
<img className="h-16 w-16 rounded-sm" src={logo} alt={name} />
<header className="px-4 py-2">
<h1 className="font-cal text-xl text-gray-900">{name}</h1>
<h2 className="text-sm text-gray-500">
<span className="capitalize">{categories[0]}</span> • {t("published_by", { author })}
</h2>
</header>
</div>
<div className="mt-4 sm:mt-0 sm:text-right">
{!isLoading ? (
isGlobal || (installedAppCount > 0 && allowedMultipleInstalls) ? (
<div className="space-x-3">
<Button StartIcon={CheckIcon} color="secondary" disabled>
{installedAppCount > 0
? t("active_install", { count: installedAppCount })
: t("globally_install")}
</Button>
<InstallAppButton
type={type}
render={(buttonProps) => (
<Button StartIcon={PlusIcon} data-testid="install-app-button" {...buttonProps}>
{t("add_another")}
</Button>
)}
/>
</div>
) : (
return (
<div className="-mx-4 md:-mx-8">
<div className="px-8">
<Link href="/apps">
<a className="mt-2 inline-flex px-1 py-2 text-sm text-gray-500 hover:bg-gray-100 hover:text-gray-800">
<Icon.FiChevronLeft className="h-5 w-5" /> {t("browse_apps")}
</a>
</Link>
<div className="items-center justify-between py-4 sm:flex sm:py-8">
<div className="flex">
<img className="h-16 w-16 rounded-sm" src={logo} alt={name} />
<header className="px-4 py-2">
<div className="flex items-center">
<h1 className="font-cal text-xl text-gray-900">{name}</h1>
{isProOnly && user?.plan === "FREE" ? (
<Badge className="ml-2" variant="default">
PRO
</Badge>
) : null}
</div>
<h2 className="text-sm text-gray-500">
<span className="capitalize">{categories[0]}</span> • {t("published_by", { author })}
</h2>
</header>
</div>
<div className="mt-4 sm:mt-0 sm:text-right">
{!isLoading ? (
isGlobal || (installedAppCount > 0 && allowedMultipleInstalls) ? (
<div className="flex space-x-3">
<Button StartIcon={Icon.FiCheck} color="secondary" disabled>
{installedAppCount > 0
? t("active_install", { count: installedAppCount })
: t("globally_install")}
</Button>
{!isGlobal && (
<InstallAppButton
type={type}
render={(buttonProps) => (
<Button data-testid="install-app-button" {...buttonProps}>
{t("install_app")}
</Button>
)}
isProOnly={isProOnly}
render={({ useDefaultComponent, ...props }) => {
if (useDefaultComponent) {
props = {
onClick: () => {
mutation.mutate({ type });
},
loading: mutation.isLoading,
};
}
return (
<Button StartIcon={Icon.FiPlus} {...props} data-testid="install-app-button">
{t("add_another")}
</Button>
);
}}
/>
)
) : (
<SkeletonButton width="24" height="10" />
)}
{price !== 0 && (
<small className="block text-right">
{feeType === "usage-based"
? commission + "% + " + priceInDollar + "/booking"
: priceInDollar}
{feeType === "monthly" && "/" + t("month")}
</small>
)}
</div>
</div>
{/* reintroduce once we show permissions and features
<NavTabs tabs={tabs} linkProps={{ shallow: true }} /> */}
</div>
<div className="justify-between px-8 py-10 md:flex">
<div className="prose-sm prose mb-6">{body}</div>
<div className="md:max-w-80 flex-1 md:ml-8">
<h4 className="font-medium text-gray-900 ">{t("categories")}</h4>
<div className="space-x-2">
{categories.map((category) => (
<Link href={"/apps/categories/" + category} key={category}>
<a>
<Badge variant="success">{category}</Badge>
</a>
</Link>
))}
</div>
<h4 className="mt-8 font-medium text-gray-900 ">{t("pricing")}</h4>
<small>
{price === 0 ? (
"Free"
) : (
<>
{Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
useGrouping: false,
}).format(price)}
{feeType === "monthly" && "/" + t("month")}
</>
)}
)}
</div>
) : installedAppCount > 0 ? (
<Button color="secondary" disabled title="App already installed">
{t("installed")}
</Button>
) : (
<InstallAppButton
type={type}
isProOnly={isProOnly}
render={({ useDefaultComponent, ...props }) => {
if (useDefaultComponent) {
props = {
onClick: () => {
mutation.mutate({ type });
},
loading: mutation.isLoading,
};
}
return (
<Button data-testid="install-app-button" {...props}>
{t("install_app")}
</Button>
);
}}
/>
)
) : (
<SkeletonButton width="24" height="10" />
)}
{price !== 0 && (
<small className="block text-right">
{feeType === "usage-based" ? commission + "% + " + priceInDollar + "/booking" : priceInDollar}
{feeType === "monthly" && "/" + t("month")}
</small>
<h4 className="mt-8 mb-2 font-medium text-gray-900 ">{t("learn_more")}</h4>
<ul className="prose -ml-1 -mr-1 text-xs leading-5">
{docs && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={docs}>
<BookOpenIcon className="mr-1 -mt-1 inline h-4 w-4" />
{t("documentation")}
</a>
</li>
)}
{website && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={website}>
<ExternalLinkIcon className="mr-1 -mt-px inline h-4 w-4" />
{website.replace("https://", "")}
</a>
</li>
)}
{email && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={"mailto:" + email}>
<MailIcon className="mr-1 -mt-px inline h-4 w-4" />
{email}
</a>
</li>
)}
{tos && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={tos}>
<DocumentTextIcon className="mr-1 -mt-px inline h-4 w-4" />
{t("terms_of_service")}
</a>
</li>
)}
{privacy && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={privacy}>
<ShieldCheckIcon className="mr-1 -mt-px inline h-4 w-4" />
{t("privacy_policy")}
</a>
</li>
)}
</ul>
<hr className="my-6" />
<small className="leading-1 block text-gray-500">
Every app published on the Cal.com App Store is open source and thoroughly tested via peer
reviews. Nevertheless, Cal.com, Inc. does not endorse or certify these apps unless they are
published by Cal.com. If you encounter inappropriate content or behaviour please report it.
</small>
<a className="mt-2 block text-xs text-red-500" href="mailto:help@cal.com">
<FlagIcon className="inline h-3 w-3" /> Report App
</a>
</div>
)}
</div>
</div>
</Shell>
</>
</div>
<div className="justify-between px-8 py-10 md:flex">
<div className="prose-sm prose mb-6">{body}</div>
<div className="md:max-w-80 flex-1 md:ml-8">
<h4 className="font-medium text-gray-900 ">{t("categories")}</h4>
<div className="space-x-2">
{categories.map((category) => (
<Link href={"/apps/categories/" + category} key={category}>
<a>
<Badge variant="success">{category}</Badge>
</a>
</Link>
))}
</div>
<h4 className="mt-8 font-medium text-gray-900 ">{t("pricing")}</h4>
<small>
{price === 0 ? (
"Free"
) : (
<>
{Intl.NumberFormat("en-US", {
style: "currency",
currency: "USD",
useGrouping: false,
}).format(price)}
{feeType === "monthly" && "/" + t("month")}
</>
)}
</small>
<h4 className="mt-8 mb-2 font-medium text-gray-900 ">{t("learn_more")}</h4>
<ul className="prose -ml-1 -mr-1 text-xs leading-5">
{docs && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={docs}>
<Icon.FiBookOpen className="mr-1 -mt-1 inline h-4 w-4" />
{t("documentation")}
</a>
</li>
)}
{website && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={website}>
<Icon.FiExternalLink className="mr-1 -mt-px inline h-4 w-4" />
{website.replace("https://", "")}
</a>
</li>
)}
{email && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={"mailto:" + email}>
<Icon.FiMail className="mr-1 -mt-px inline h-4 w-4" />
{email}
</a>
</li>
)}
{tos && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={tos}>
<Icon.FiFile className="mr-1 -mt-px inline h-4 w-4" />
{t("terms_of_service")}
</a>
</li>
)}
{privacy && (
<li>
<a
target="_blank"
rel="noreferrer"
className="text-blue-500 no-underline hover:underline"
href={privacy}>
<Icon.FiShield className="mr-1 -mt-px inline h-4 w-4" />
{t("privacy_policy")}
</a>
</li>
)}
</ul>
<hr className="my-6" />
<small className="leading-1 block text-gray-500">
Every app published on the Cal.com App Store is open source and thoroughly tested via peer
reviews. Nevertheless, Cal.com, Inc. does not endorse or certify these apps unless they are
published by Cal.com. If you encounter inappropriate content or behaviour please report it.
</small>
<a className="mt-2 block text-xs text-red-500" href="mailto:help@cal.com">
<Icon.FiFlag className="inline h-3 w-3" /> Report App
</a>
</div>
</div>
</div>
);
};
export default function App(props: {
name: string;
type: AppType["type"];
isGlobal?: AppType["isGlobal"];
logo: string;
body: React.ReactNode;
categories: string[];
author: string;
pro?: boolean;
price?: number;
commission?: number;
feeType?: AppType["feeType"];
docs?: string;
website?: string;
email: string; // required
tos?: string;
privacy?: string;
licenseRequired: AppType["licenseRequired"];
isProOnly: AppType["isProOnly"];
}) {
return (
<Shell large isPublic>
{props.licenseRequired ? (
<LicenseRequired>
<Component {...props} />
</LicenseRequired>
) : (
<Component {...props} />
)}
</Shell>
);
}
+1 -3
View File
@@ -19,9 +19,7 @@ export default function AppsShell({ children }: { children: React.ReactNode }) {
return (
<>
<div className="mb-12 block lg:hidden">
{status === "authenticated" && <NavTabs tabs={tabs} linkProps={{ shallow: true }} />}
</div>
<div className="mb-12 block lg:hidden">{status === "authenticated" && <NavTabs tabs={tabs} />}</div>
<main className="pb-6">{children}</main>
</>
);
+1 -1
View File
@@ -24,7 +24,7 @@ const tabs = [
export default function BookingsShell({ children }: { children: React.ReactNode }) {
return (
<>
<NavTabs tabs={tabs} linkProps={{ shallow: true }} />
<NavTabs tabs={tabs} />
<main>{children}</main>
</>
);
@@ -3,8 +3,8 @@ import React, { useEffect, useState } from "react";
import Select from "react-select";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@lib/trpc";
import { DestinationCalendar } from "@calcom/prisma/client";
import { trpc } from "@calcom/trpc/react";
interface Props {
onChange: (value: { externalId: string; integration: string }) => void;
@@ -12,6 +12,7 @@ interface Props {
hidePlaceholder?: boolean;
/** The external Id of the connected calendar */
value: string | undefined;
destinationCalendar?: DestinationCalendar | null;
}
const DestinationCalendarSelector = ({
@@ -19,6 +20,7 @@ const DestinationCalendarSelector = ({
isLoading,
value,
hidePlaceholder,
destinationCalendar,
}: Props): JSX.Element | null => {
const { t } = useLocale();
const query = trpc.useQuery(["viewer.connectedCalendars"]);
@@ -61,16 +63,33 @@ const DestinationCalendarSelector = ({
query.data.connectedCalendars.map((selectedCalendar) => ({
key: selectedCalendar.credentialId,
label: `${selectedCalendar.integration.title} (${selectedCalendar.primary?.name})`,
options: (selectedCalendar.calendars ?? []).map((cal) => ({
label: cal.name || "",
value: `${cal.integration}:${cal.externalId}`,
})),
options: (selectedCalendar.calendars ?? [])
.filter((cal) => cal.readOnly === false)
.map((cal) => ({
label: cal.name || "",
value: `${cal.integration}:${cal.externalId}`,
})),
})) ?? [];
const defaultCalendarSelectedString = destinationCalendar?.externalId
? `(${
destinationCalendar.externalId.length > 15
? destinationCalendar.externalId.substring(0, 15) + "..."
: destinationCalendar.externalId
})`
: "";
return (
<div className="relative" title={`${t("select_destination_calendar")}: ${selectedOption?.label || ""}`}>
<Select
name={"primarySelectedCalendar"}
placeholder={!hidePlaceholder ? `${t("select_destination_calendar")}:` : undefined}
name="primarySelectedCalendar"
placeholder={
!hidePlaceholder ? (
`${t("select_destination_calendar")}`
) : (
<span className="whitespace-nowrap">
{t("default_calendar_selected")} {defaultCalendarSelectedString}
</span>
)
}
options={options}
styles={{
placeholder: (styles) => ({ ...styles, ...content(hidePlaceholder) }),
@@ -88,13 +107,17 @@ const DestinationCalendarSelector = ({
control: (defaultStyles) => {
return {
...defaultStyles,
borderRadius: "2px",
borderRadius: "6px",
"@media only screen and (min-width: 640px)": {
...(defaultStyles["@media only screen and (min-width: 640px)"] as object),
width: "100%",
},
};
},
}}
isSearchable={false}
className={classNames(
"mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-sm border-gray-300 sm:text-sm",
"mt-1 mb-2 block w-full min-w-0 flex-1 rounded-none rounded-r-sm border-gray-300 text-sm",
!hidePlaceholder && "font-medium"
)}
onChange={(option) => {
@@ -113,6 +136,9 @@ const DestinationCalendarSelector = ({
}}
isLoading={isLoading}
value={selectedOption}
components={{
IndicatorSeparator: () => null,
}}
/>
</div>
);
+96 -81
View File
@@ -1,19 +1,17 @@
import { ArrowLeftIcon, ChevronRightIcon, CodeIcon, EyeIcon, SunIcon } from "@heroicons/react/solid";
import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@radix-ui/react-collapsible";
import classNames from "classnames";
import { useRouter } from "next/router";
import { forwardRef, MutableRefObject, useRef, useState } from "react";
import { createRef, forwardRef, MutableRefObject, RefObject, useRef, useState } from "react";
import { components, ControlProps } from "react-select";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import showToast from "@calcom/lib/notification";
import { EventType } from "@calcom/prisma/client";
import { Button, Switch } from "@calcom/ui";
import { Dialog, DialogClose, DialogContent } from "@calcom/ui/Dialog";
import { Icon } from "@calcom/ui/Icon";
import { InputLeading, Label, TextArea, TextField } from "@calcom/ui/form/fields";
import { Button, Switch } from "@calcom/ui/v2";
import { EMBED_LIB_URL, WEBAPP_URL } from "@lib/config/constants";
import { trpc } from "@lib/trpc";
import NavTabs from "@components/NavTabs";
import ColorPicker from "@components/ui/colorpicker";
@@ -40,7 +38,7 @@ type PreviewState = {
brandColor: string;
};
};
const queryParamsForDialog = ["embedType", "tabName", "eventTypeId"];
const queryParamsForDialog = ["embedType", "tabName", "embedUrl"];
const getDimension = (dimension: string) => {
if (dimension.match(/^\d+$/)) {
@@ -143,7 +141,7 @@ function MyComponent() {
const cal = await getCalApi();
${uiInstructionCode}
})();
}, [])
}, [])
return <Cal calLink="${calLink}" style={{width:"${width}",height:"${height}",overflow:"scroll"}} />;
};`;
},
@@ -164,7 +162,7 @@ function MyComponent() {
Cal("floatingButton", ${floatingButtonArg});
${uiInstructionCode}
})();
}, [])
}, [])
};`;
},
"element-click": ({ calLink, uiInstructionCode }: { calLink: string; uiInstructionCode: string }) => {
@@ -177,7 +175,7 @@ function MyComponent() {
const cal = await getCalApi();
${uiInstructionCode}
})();
}, [])
}, [])
return <button data-cal-link="${calLink}" />;
};`;
},
@@ -224,7 +222,11 @@ const getEmbedTypeSpecificString = ({
if (!frameworkCodes) {
throw new Error(`No code available for the framework:${embedFramework}`);
}
let uiInstructionStringArg = undefined;
let uiInstructionStringArg: {
apiName: string;
theme: PreviewState["theme"];
brandColor: string;
};
if (embedFramework === "react") {
uiInstructionStringArg = {
apiName: "cal",
@@ -452,7 +454,7 @@ const tabs = [
{
name: "HTML",
tabName: "embed-code",
icon: CodeIcon,
icon: Icon.FiCode,
type: "code",
Component: forwardRef<
HTMLTextAreaElement | HTMLIFrameElement | null,
@@ -467,12 +469,15 @@ const tabs = [
}
return (
<>
<small className="flex py-4 text-neutral-500">{t("place_where_cal_widget_appear")}</small>
<div>
<small className="flex py-4 text-neutral-500">{t("place_where_cal_widget_appear")}</small>
</div>
<TextArea
data-testid="embed-code"
ref={ref as typeof ref & MutableRefObject<HTMLTextAreaElement>}
name="embed-code"
className="h-[36rem]"
className="h-[calc(100%-50px)] font-mono"
style={{ resize: "none", overflow: "auto" }}
readOnly
value={
`<!-- Cal ${embedType} embed code begins -->\n` +
@@ -486,7 +491,8 @@ ${getEmbedSnippetString()}
${getEmbedTypeSpecificString({ embedFramework: "HTML", embedType, calLink, previewState })}
</script>
<!-- Cal ${embedType} embed code ends -->`
}></TextArea>
}
/>
<p className="hidden text-sm text-gray-500">
{t(
"Need help? See our guides for embedding Cal on Wix, Squarespace, or WordPress, check our common questions, or explore advanced embed options."
@@ -499,7 +505,7 @@ ${getEmbedTypeSpecificString({ embedFramework: "HTML", embedType, calLink, previ
{
name: "React",
tabName: "embed-react",
icon: CodeIcon,
icon: Icon.FiCode,
type: "code",
Component: forwardRef<
HTMLTextAreaElement | HTMLIFrameElement | null,
@@ -519,8 +525,9 @@ ${getEmbedTypeSpecificString({ embedFramework: "HTML", embedType, calLink, previ
data-testid="embed-react"
ref={ref as typeof ref & MutableRefObject<HTMLTextAreaElement>}
name="embed-react"
className="h-[36rem]"
className="h-[calc(100%-50px)] font-mono"
readOnly
style={{ resize: "none", overflow: "auto" }}
value={`/* First make sure that you have installed the package */
/* If you are using yarn */
@@ -529,7 +536,8 @@ ${getEmbedTypeSpecificString({ embedFramework: "HTML", embedType, calLink, previ
/* If you are using npm */
// npm install @calcom/embed-react
${getEmbedTypeSpecificString({ embedFramework: "react", embedType, calLink, previewState })}
`}></TextArea>
`}
/>
</>
);
}),
@@ -537,11 +545,11 @@ ${getEmbedTypeSpecificString({ embedFramework: "react", embedType, calLink, prev
{
name: "Preview",
tabName: "embed-preview",
icon: EyeIcon,
icon: Icon.FiEye,
type: "iframe",
Component: forwardRef<
HTMLIFrameElement | HTMLTextAreaElement | null,
{ calLink: string; embedType: EmbedType }
{ calLink: string; embedType: EmbedType; previewState: PreviewState }
>(function Preview({ calLink, embedType }, ref) {
if (ref instanceof Function || !ref) {
return null;
@@ -573,7 +581,7 @@ Cal("init", {origin:"${WEBAPP_URL}"});
const ThemeSelectControl = ({ children, ...props }: ControlProps<{ value: Theme; label: string }, false>) => {
return (
<components.Control {...props}>
<SunIcon className="h-[32px] w-[32px] text-gray-500" />
<Icon.FiSun className="ml-2 h-4 w-4 text-gray-500" />
{children}
</components.Control>
);
@@ -592,10 +600,10 @@ const ChooseEmbedTypesDialogContent = () => {
<p className="text-sm text-gray-500">{t("choose_ways_put_cal_site")}</p>
</div>
</div>
<div className="flex">
<div className="flex items-start">
{embeds.map((embed, index) => (
<button
className="mr-2 w-1/3 p-3 text-left hover:rounded-md hover:border hover:bg-neutral-100"
className="mr-2 w-1/3 border border-transparent p-3 text-left hover:rounded-md hover:border-gray-200 hover:bg-neutral-100"
key={index}
data-testid={embed.type}
onClick={() => {
@@ -619,24 +627,24 @@ const ChooseEmbedTypesDialogContent = () => {
};
const EmbedTypeCodeAndPreviewDialogContent = ({
eventTypeId,
embedType,
embedUrl,
}: {
eventTypeId: EventType["id"];
embedType: EmbedType;
embedUrl: string;
}) => {
const { t } = useLocale();
const router = useRouter();
const iframeRef = useRef<HTMLIFrameElement>(null);
const embedCodeRef = useRef<HTMLTextAreaElement>(null);
const embed = embeds.find((embed) => embed.type === embedType);
const embedCodeRefs: Record<typeof tabs[0]["name"], RefObject<HTMLTextAreaElement>> = {};
tabs
.filter((tab) => tab.type === "code")
.forEach((codeTab) => {
embedCodeRefs[codeTab.name] = createRef();
});
const { data: eventType, isLoading } = trpc.useQuery([
"viewer.eventTypes.get",
{
id: +eventTypeId,
},
]);
const refOfEmbedCodesRefs = useRef(embedCodeRefs);
const embed = embeds.find((embed) => embed.type === embedType);
const [isEmbedCustomizationOpen, setIsEmbedCustomizationOpen] = useState(true);
const [isBookingCustomizationOpen, setIsBookingCustomizationOpen] = useState(true);
@@ -679,18 +687,12 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
});
}
if (isLoading) {
return null;
}
if (!embed || !eventType) {
if (!embed || !embedUrl) {
close();
return null;
}
const calLink = `${eventType.team ? `team/${eventType.team.slug}` : eventType.users[0].username}/${
eventType.slug
}`;
const calLink = decodeURIComponent(embedUrl);
const addToPalette = (update: typeof previewState["palette"]) => {
setPreviewState((previewState) => {
@@ -793,11 +795,11 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
},
});
}}>
<ArrowLeftIcon className="mr-4 w-4"></ArrowLeftIcon>
<Icon.FiArrowLeft className="mr-4 w-4" />
</button>
{embed.title}
</h3>
<hr className={classNames("mt-4", embedType === "element-click" ? "hidden" : "")}></hr>
<hr className={classNames("mt-4", embedType === "element-click" ? "hidden" : "")} />
<div className={classNames("mt-4 font-medium", embedType === "element-click" ? "hidden" : "")}>
<Collapsible
open={isEmbedCustomizationOpen}
@@ -812,7 +814,7 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
? "Floating Popup Customization"
: "Element Click Customization"}
</div>
<ChevronRightIcon
<Icon.FiChevronRight
className={`${
isEmbedCustomizationOpen ? "rotate-90 transform" : ""
} ml-auto h-5 w-5 text-neutral-500`}
@@ -843,7 +845,7 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
}}
addOnLeading={<InputLeading>W</InputLeading>}
/>
<span className="p-2">x</span>
<span className="p-2">×</span>
<TextField
labelProps={{ className: "hidden" }}
name="height"
@@ -909,7 +911,8 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
},
};
});
}}></Switch>
}}
/>
</div>
<div
className={classNames(
@@ -930,7 +933,8 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
});
}}
defaultValue={FloatingPopupPositionOptions[0]}
options={FloatingPopupPositionOptions}></Select>
options={FloatingPopupPositionOptions}
/>
</div>
<div
className={classNames(
@@ -951,7 +955,8 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
},
};
});
}}></ColorPicker>
}}
/>
</div>
</div>
<div
@@ -973,20 +978,21 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
},
};
});
}}></ColorPicker>
}}
/>
</div>
</div>
</CollapsibleContent>
</Collapsible>
</div>
<hr className="mt-4"></hr>
<hr className="mt-4" />
<div className="mt-4 font-medium">
<Collapsible
open={isBookingCustomizationOpen}
onOpenChange={() => setIsBookingCustomizationOpen((val) => !val)}>
<CollapsibleTrigger className="flex w-full" type="button">
<div className="text-base font-medium text-neutral-900">Cal Booking Customization</div>
<ChevronRightIcon
<Icon.FiChevronRight
className={`${
isBookingCustomizationOpen ? "rotate-90 transform" : ""
} ml-auto h-5 w-5 text-neutral-500`}
@@ -1013,7 +1019,8 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
};
});
}}
options={ThemeOptions}></Select>
options={ThemeOptions}
/>
</Label>
{[
{ name: "brandColor", title: "Brand Color" },
@@ -1056,7 +1063,8 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
embedType={embedType}
calLink={calLink}
previewState={previewState}
ref={embedCodeRef}></tab.Component>
ref={refOfEmbedCodesRefs.current[tab.name]}
/>
) : (
<tab.Component
embedType={embedType}
@@ -1066,17 +1074,18 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
/>
)}
</div>
<div className={router.query.tabName == "embed-preview" ? "block" : "hidden"}></div>
<div className={router.query.tabName == "embed-preview" ? "block" : "hidden"} />
</div>
<div className="mt-8 flex flex-row-reverse gap-x-2">
{tab.type === "code" ? (
<Button
type="submit"
onClick={() => {
if (!embedCodeRef.current) {
const currentTabCodeEl = refOfEmbedCodesRefs.current[tab.name].current;
if (!currentTabCodeEl) {
return;
}
navigator.clipboard.writeText(embedCodeRef.current.value);
navigator.clipboard.writeText(currentTabCodeEl.value);
showToast(t("code_copied"), "success");
}}>
{t("copy_code")}
@@ -1097,39 +1106,46 @@ const EmbedTypeCodeAndPreviewDialogContent = ({
export const EmbedDialog = () => {
const router = useRouter();
const eventTypeId: EventType["id"] = +(router.query.eventTypeId as string);
const embedUrl: string = router.query.embedUrl as string;
return (
<Dialog name="embed" clearQueryParamsOnClose={queryParamsForDialog}>
<Dialog
name="embed"
clearQueryParamsOnClose={queryParamsForDialog}
onOpenChange={(open) => {
if (!open) window.resetEmbedStatus();
}}>
{!router.query.embedType ? (
<ChooseEmbedTypesDialogContent />
) : (
<EmbedTypeCodeAndPreviewDialogContent
eventTypeId={eventTypeId}
embedType={router.query.embedType as EmbedType}
embedUrl={embedUrl}
/>
)}
</Dialog>
);
};
type EmbedButtonProps<T> = {
embedUrl: string;
children?: React.ReactNode;
className?: string;
as?: T;
};
export const EmbedButton = ({
eventTypeId,
export const EmbedButton = <T extends React.ElementType>({
embedUrl,
children,
className = "",
dark,
as,
...props
}: {
eventTypeId: EventType["id"];
className: string;
dark?: boolean;
}) => {
const { t } = useLocale();
}: EmbedButtonProps<T> & React.ComponentPropsWithoutRef<T>) => {
const router = useRouter();
className = classNames(className, "hidden lg:flex");
className = classNames(className, "hidden lg:inline-flex");
const openEmbedModal = () => {
const query = {
...router.query,
dialog: "embed",
eventTypeId,
embedUrl,
};
router.push(
{
@@ -1140,20 +1156,19 @@ export const EmbedButton = ({
{ shallow: true }
);
};
const Component = as ?? Button;
return (
<Button
type="button"
color="minimal"
size="sm"
className={className}
<Component
{...props}
data-test-eventtype-id={eventTypeId}
data-testid={"event-type-embed"}
onClick={() => openEmbedModal()}>
<CodeIcon
className={classNames("h-4 w-4 ltr:mr-2 rtl:ml-2", dark ? "" : "text-neutral-500")}></CodeIcon>
{t("Embed")}
</Button>
className={className}
data-test-embed-url={embedUrl}
data-testid="embed"
type="button"
onClick={() => {
openEmbedModal();
}}>
{children}
</Component>
);
};
+49
View File
@@ -0,0 +1,49 @@
import { Dispatch, useState, useEffect } from "react";
import { JSONObject } from "superjson/dist/types";
import RainbowGate from "@calcom/app-store/rainbow/components/RainbowKit";
export type Gate = undefined | "rainbow"; // Add more like ` | "geolocation" | "payment"`
export type GateState = {
rainbowToken?: string;
};
type GateProps = {
children: React.ReactNode;
gates: Gate[];
metadata: JSONObject;
dispatch: Dispatch<Partial<GateState>>;
};
// To add a new Gate just add the gate logic to the switch statement
const Gates: React.FC<GateProps> = ({ children, gates, metadata, dispatch }) => {
const [rainbowToken, setRainbowToken] = useState<string>();
useEffect(() => {
dispatch({ rainbowToken });
}, [rainbowToken, dispatch]);
let gateWrappers = <>{children}</>;
// Recursively wraps the `gateWrappers` with new gates allowing for multiple gates
for (const gate of gates) {
switch (gate) {
case "rainbow":
if (metadata.blockchainId && metadata.smartContractAddress && !rainbowToken) {
gateWrappers = (
<RainbowGate
setToken={setRainbowToken}
chainId={metadata.blockchainId as number}
tokenAddress={metadata.smartContractAddress as string}>
{gateWrappers}
</RainbowGate>
);
}
}
}
return gateWrappers;
};
export default Gates;
+7 -2
View File
@@ -1,11 +1,16 @@
import { useTranslation } from "next-i18next";
import { useEffect } from "react";
import { trpc } from "@lib/trpc";
import { trpc } from "@calcom/trpc/react";
export function useViewerI18n() {
return trpc.useQuery(["viewer.i18n"], {
return trpc.useQuery(["viewer.public.i18n"], {
staleTime: Infinity,
/**
* i18n should never be clubbed with other queries, so that it's caching can be managed independently.
* We intend to not cache i18n query
**/
context: { skipBatch: true },
});
}
+1 -1
View File
@@ -142,7 +142,7 @@ export default function ImageUploader({
</div>
)}
{result && <CropContainer imageSrc={result as string} onCropComplete={setCroppedAreaPixels} />}
<label className="mt-8 rounded-sm border border-gray-300 bg-white px-3 py-1 text-xs font-medium leading-4 text-gray-700 hover:bg-gray-50 hover:text-gray-900 hover:shadow-sm focus:outline-none focus:ring-2 focus:ring-neutral-900 focus:ring-offset-1 dark:border-gray-800 dark:bg-transparent dark:text-white dark:hover:bg-gray-900">
<label className="mt-8 rounded-sm border border-gray-300 bg-white px-3 py-1 text-xs font-medium leading-4 text-gray-700 hover:bg-gray-50 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-neutral-900 focus:ring-offset-1 dark:border-gray-800 dark:bg-transparent dark:text-white dark:hover:bg-gray-900">
<input
onInput={onInputFile}
type="file"
+3
View File
@@ -1 +1,4 @@
/**
* @deprecated Use custom Skeletons instead
**/
export { default } from "@calcom/ui/Loader";
-20
View File
@@ -1,20 +0,0 @@
export default function Logo({ small, icon }: { small?: boolean; icon?: boolean }) {
return (
<h1 className="inline">
<strong>
{icon ? (
// eslint-disable-next-line @next/next/no-img-element
<img className="mx-auto w-9" alt="Cal" title="Cal" src="/cal-com-icon-white.svg" />
) : (
// eslint-disable-next-line @next/next/no-img-element
<img
className={small ? "h-4 w-auto" : "h-5 w-auto"}
alt="Cal"
title="Cal"
src="/calendso-logo-white-word.svg"
/>
)}
</strong>
</h1>
);
}
+5 -3
View File
@@ -18,6 +18,7 @@ export interface NavTabProps {
tabName?: string;
icon?: SVGComponent;
adminRequired?: boolean;
className?: string;
}[];
linkProps?: Omit<LinkProps, "href">;
}
@@ -58,7 +59,7 @@ const NavTabs: FC<NavTabProps> = ({ tabs, linkProps, ...props }) => {
: noop;
const Component = tab.adminRequired ? AdminRequired : Fragment;
const className = tab.className || "";
return (
<Component key={tab.name}>
<Link key={tab.name} href={href} {...linkProps}>
@@ -68,14 +69,15 @@ const NavTabs: FC<NavTabProps> = ({ tabs, linkProps, ...props }) => {
isCurrent
? "border-neutral-900 text-neutral-900"
: "border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700",
"group inline-flex items-center border-b-2 py-4 px-1 text-sm font-medium"
"group inline-flex items-center border-b-2 py-4 px-1 text-sm font-medium",
className
)}
aria-current={isCurrent ? "page" : undefined}>
{tab.icon && (
<tab.icon
className={classNames(
isCurrent ? "text-neutral-900" : "text-gray-400 group-hover:text-gray-500",
"-ml-0.5 hidden h-5 w-5 ltr:mr-2 rtl:ml-2 sm:inline-block"
"-ml-0.5 hidden h-4 w-4 ltr:mr-2 rtl:ml-2 sm:inline-block"
)}
aria-hidden="true"
/>

Some files were not shown because too many files have changed in this diff Show More