@licklist/design 0.62.2 → 0.62.3-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (143) hide show
  1. package/bitbucket-pipelines.yml +0 -8
  2. package/dist/date-time-button/DateTimeButton.js +1 -1
  3. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.d.ts +3 -1
  4. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.d.ts.map +1 -1
  5. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.js +1 -1
  6. package/dist/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.d.ts +3 -1
  7. package/dist/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.d.ts.map +1 -1
  8. package/dist/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.js +1 -1
  9. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.d.ts +3 -1
  10. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.d.ts.map +1 -1
  11. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.js +1 -1
  12. package/dist/iframe/payment/order-items-table/utils/paymentSummary.js +1 -1
  13. package/dist/iframe/ryft/RyftPaymentForm.d.ts.map +1 -1
  14. package/dist/iframe/ryft/RyftPaymentForm.js +1 -1
  15. package/dist/iframe/ryft/utils/ryft-form.d.ts.map +1 -1
  16. package/dist/iframe/ryft/utils/ryft-form.js +1 -1
  17. package/dist/product-set/control/DateAndRecurrenceInput.d.ts +1 -1
  18. package/dist/product-set/control/DateAndRecurrenceInput.d.ts.map +1 -1
  19. package/dist/product-set/control/DateAndRecurrenceInput.js +1 -1
  20. package/dist/product-set/control/DateInput.d.ts.map +1 -1
  21. package/dist/product-set/control/DateInput.js +1 -1
  22. package/dist/product-set/control/ProductSetControl.d.ts +1 -1
  23. package/dist/product-set/control/ProductSetControl.d.ts.map +1 -1
  24. package/dist/product-set/form/ProductSetForm.d.ts +4 -1
  25. package/dist/product-set/form/ProductSetForm.d.ts.map +1 -1
  26. package/dist/product-set/hooks/useSortableTreeFunctions.d.ts.map +1 -1
  27. package/dist/product-set/product/ProductControl.d.ts.map +1 -1
  28. package/dist/product-set/product/ProductControl.js +1 -1
  29. package/dist/product-set/product/fixed-duration-fields/FixedDurationOptions.d.ts.map +1 -1
  30. package/dist/provider/working-hours-input/WorkingHoursInputDescription.d.ts.map +1 -1
  31. package/dist/provider/working-hours-input/WorkingHoursInputDescription.js +1 -1
  32. package/dist/recurring-date-picker-input/RecurrenceAndFrequencyInput.d.ts.map +1 -1
  33. package/dist/recurring-date-picker-input/RecurringDatePickerInput.d.ts +3 -1
  34. package/dist/recurring-date-picker-input/RecurringDatePickerInput.d.ts.map +1 -1
  35. package/dist/recurring-date-picker-input/RecurringDatePickerInput.js +1 -1
  36. package/dist/recurring-date-picker-input/utils.d.ts +12 -0
  37. package/dist/recurring-date-picker-input/utils.d.ts.map +1 -1
  38. package/dist/recurring-date-picker-input/utils.js +1 -1
  39. package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
  40. package/dist/sales/booking/results/components/ResultCard.js +1 -1
  41. package/dist/sales/coupon/control/CouponFormControl.d.ts +2 -1
  42. package/dist/sales/coupon/control/CouponFormControl.d.ts.map +1 -1
  43. package/dist/sales/coupon/control/CouponFormControl.js +1 -1
  44. package/dist/sales/coupon/form/CouponFrom.d.ts +2 -2
  45. package/dist/sales/coupon/form/CouponFrom.d.ts.map +1 -1
  46. package/dist/sales/coupon/utils/index.d.ts +7 -0
  47. package/dist/sales/coupon/utils/index.d.ts.map +1 -0
  48. package/dist/sales/coupon/utils/index.js +1 -0
  49. package/dist/setting/admin/AdminSettingForm.d.ts +2 -2
  50. package/dist/setting/admin/AdminSettingForm.d.ts.map +1 -1
  51. package/dist/setting/dashboard/DashboardSettingForm.d.ts +1 -0
  52. package/dist/setting/dashboard/DashboardSettingForm.d.ts.map +1 -1
  53. package/dist/setting/dashboard/DashboardSettingForm.js +1 -1
  54. package/dist/styles/iframe-external-modal/IframeExternalModal.scss +1 -0
  55. package/dist/styles/ryft-payment-form/RyftPaymentForm.scss +99 -113
  56. package/dist/styles/sales/BookingResults.scss +1 -1
  57. package/dist/typeahead/Typeahead.d.ts +2 -1
  58. package/dist/typeahead/Typeahead.d.ts.map +1 -1
  59. package/dist/typeahead/Typeahead.js +1 -1
  60. package/dist/zone/form/ZoneForm.d.ts +2 -2
  61. package/dist/zone/form/ZoneForm.d.ts.map +1 -1
  62. package/dist/zone/form/ZoneForm.js +1 -1
  63. package/dist/zone/form/components/ZoneControl.d.ts +2 -2
  64. package/dist/zone/form/components/ZoneControl.d.ts.map +1 -1
  65. package/dist/zone/form/components/ZoneControl.js +1 -1
  66. package/dist/zone/form/components/ZoneRecurrencesControl.d.ts +4 -4
  67. package/dist/zone/form/components/ZoneRecurrencesControl.d.ts.map +1 -1
  68. package/dist/zone/form/components/ZoneRecurrencesControl.js +1 -1
  69. package/dist/zone/form/utils/dates.d.ts.map +1 -1
  70. package/package.json +10 -35
  71. package/src/date-time-button/DateTimeButton.stories.tsx +2 -1
  72. package/src/date-time-button/DateTimeButton.tsx +7 -5
  73. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.tsx +4 -0
  74. package/src/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.tsx +10 -8
  75. package/src/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.tsx +4 -0
  76. package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +6 -6
  77. package/src/iframe/ryft/RyftPaymentForm.tsx +12 -4
  78. package/src/iframe/ryft/utils/ryft-form.ts +8 -4
  79. package/src/product-set/control/DateAndRecurrenceInput.tsx +3 -2
  80. package/src/product-set/control/DateInput.tsx +2 -4
  81. package/src/product-set/control/ProductSetControl.tsx +1 -1
  82. package/src/product-set/form/ProductCategoriesControl.tsx +1 -1
  83. package/src/product-set/form/ProductSetForm.tsx +5 -1
  84. package/src/product-set/hooks/useSortableTreeFunctions.ts +2 -0
  85. package/src/product-set/product/ProductControl.tsx +38 -38
  86. package/src/product-set/product/fixed-duration-fields/FixedDurationOptions.tsx +0 -2
  87. package/src/provider/working-hours-input/WorkingHoursInputDescription.tsx +4 -18
  88. package/src/recurring-date-picker-input/RecurrenceAndFrequencyInput.tsx +0 -1
  89. package/src/recurring-date-picker-input/RecurringDatePickerInput.tsx +11 -1
  90. package/src/recurring-date-picker-input/utils.ts +77 -0
  91. package/src/sales/booking/results/BookingResults.stories.tsx +3 -2
  92. package/src/sales/booking/results/components/ResultCard.tsx +2 -5
  93. package/src/sales/coupon/control/CouponFormControl.tsx +29 -50
  94. package/src/sales/coupon/form/CouponFrom.tsx +5 -15
  95. package/src/sales/coupon/utils/index.ts +13 -0
  96. package/src/setting/admin/AdminSettingForm.tsx +2 -2
  97. package/src/setting/dashboard/DashboardSettingForm.tsx +13 -0
  98. package/src/sortable-tree/SortableTreeItem.tsx +1 -1
  99. package/src/static/switch/BooleanSwitch.tsx +1 -1
  100. package/src/styles/iframe-external-modal/IframeExternalModal.scss +1 -0
  101. package/src/styles/ryft-payment-form/RyftPaymentForm.scss +99 -113
  102. package/src/styles/sales/BookingResults.scss +1 -1
  103. package/src/typeahead/Typeahead.tsx +16 -3
  104. package/src/zone/form/ZoneForm.tsx +3 -2
  105. package/src/zone/form/components/ZoneControl.tsx +3 -3
  106. package/src/zone/form/components/ZoneRecurrencesControl.tsx +7 -5
  107. package/src/zone/form/utils/dates.ts +9 -10
  108. package/jest.config.js +0 -29
  109. package/tests/Auth/Authorizer.test.tsx +0 -194
  110. package/tests/Auth/Layout/UserNavDropDown.test.tsx +0 -43
  111. package/tests/Auth/Layout/UserNavDropDownToggle.test.tsx +0 -33
  112. package/tests/Auth/Login/LoginComponent.test.tsx +0 -246
  113. package/tests/Auth/Login/LoginFormComponent.test.tsx +0 -182
  114. package/tests/Auth/Register/RegisterComponent.test.tsx +0 -285
  115. package/tests/Auth/Register/RegisterFormComponent.test.tsx +0 -170
  116. package/tests/Auth/Settings/Dashboard/IpInput.test.tsx +0 -130
  117. package/tests/Auth/Social/SocialCallbackComponent.test.tsx +0 -133
  118. package/tests/Auth/Social/SocialFormComponent.test.tsx +0 -118
  119. package/tests/FileUpload/FileUpload.test.tsx +0 -42
  120. package/tests/Notification/EmailTemplate.test.tsx +0 -82
  121. package/tests/ProductSet/ProductSetPopover.test.tsx +0 -40
  122. package/tests/Report/Report.test.tsx +0 -48
  123. package/tests/Sales/Coupon.test.tsx +0 -51
  124. package/tests/Sales/SalesAndVIews.test.tsx +0 -63
  125. package/tests/SnippetTemplates/SnippetTemplates.test.tsx +0 -56
  126. package/tests/Table/FilterHelperComponent.test.tsx +0 -88
  127. package/tests/Table/PaginationHelperComponent.test.tsx +0 -109
  128. package/tests/Table/PerPageHelperComponent.test.tsx +0 -34
  129. package/tests/Table/TableHelperComponent.test.tsx +0 -295
  130. package/tests/TipTapEditor/TipTapEditor.test.tsx +0 -28
  131. package/tests/__mock__/hooks/useAuthApi.ts +0 -13
  132. package/tests/__mock__/hooks/useAuthMock.ts +0 -13
  133. package/tests/__mock__/hooks/useFormMock.ts +0 -27
  134. package/tests/__mock__/hooks/useNotificationMock.ts +0 -13
  135. package/tests/__mock__/hooks/useQueryMock.ts +0 -16
  136. package/tests/__mock__/hooks/useSocialApiMock.ts +0 -20
  137. package/tests/__mock__/hooks/useTranslationMock.ts +0 -17
  138. package/tests/__mock__/hooks/useUserApiMock.ts +0 -18
  139. package/tests/__mock__/hooks/useUserMock.ts +0 -13
  140. package/tests/__mock__/styleMock.js +0 -1
  141. package/tests/__mock__/windowMock.ts +0 -5
  142. package/tests/packages/react-query.tsx +0 -28
  143. package/tests/setupTests.ts +0 -10
@@ -7,10 +7,10 @@ export type ZoneFormProps = {
7
7
  onSubmit: (values: Partial<Zone>) => void;
8
8
  serverErrors?: ServerError;
9
9
  isLoading?: boolean;
10
- workHours?: WorkHour[];
10
+ workHours: WorkHour[] | undefined;
11
11
  };
12
12
  export type ZoneFormValues = Partial<Zone> & {
13
13
  localImageBlobURL?: string;
14
14
  };
15
- export declare const ZoneForm: ({ defaultValues, onSubmit, serverErrors, isLoading, }: ZoneFormProps) => JSX.Element;
15
+ export declare const ZoneForm: ({ defaultValues, onSubmit, serverErrors, isLoading, workHours, }: ZoneFormProps) => JSX.Element;
16
16
  //# sourceMappingURL=ZoneForm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZoneForm.d.ts","sourceRoot":"","sources":["../../../src/zone/form/ZoneForm.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAGtF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,QAAQ,0DAKlB,aAAa,gBAiDf,CAAC"}
1
+ {"version":3,"file":"ZoneForm.d.ts","sourceRoot":"","sources":["../../../src/zone/form/ZoneForm.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,wDAAwD,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAE5E,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAGtF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IAC1C,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,QAAQ,qEAMlB,aAAa,gBAiDf,CAAC"}
@@ -1 +1 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib"),t=require("react"),o=e(t),n=require("react-i18next"),s=require("react-bootstrap"),a=require("react-hook-form"),l=e(require("@licklist/plugins/dist/services/Form/FormErrorService")),i=require("./components/ZoneControl.js");exports.ZoneForm=function(e){var u=e.defaultValues,c=e.onSubmit,m=e.serverErrors,d=e.isLoading,f=void 0!==d&&d,b=n.useTranslation("Design").t,p=a.useForm({mode:"onChange",defaultValues:{zoneRecurrences:[]}}),v=p.reset,E=p.setError,g=p.handleSubmit,q=(0,p.watch)();return t.useEffect((function(){u&&v(u)}),[u,v]),t.useEffect((function(){m&&l.handleServerErrors(m,E)}),[m,E]),o.createElement(a.FormProvider,r.__assign({},p),o.createElement(s.Form,{onSubmit:g((function(e){e.localImageBlobURL;var t=r.__rest(e,["localImageBlobURL"]);c(t)}))},o.createElement(i.ZoneControl,{isLoading:f}),o.createElement(s.Row,null,o.createElement(s.Col,{md:6,sm:12}),o.createElement(s.Col,{className:"product-set-save-btn-wrapper p-0 pl-4 d-flex mw-100",md:6,sm:12},o.createElement(s.Button,{className:"product-set-save-btn mt-5 ml-5 d-no dne d-md-block",type:"submit",disabled:f||!q.name},b("saveAndClose"))))))};
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var r=require("tslib"),t=require("react"),o=e(t),n=require("react-i18next"),s=require("react-bootstrap"),a=require("react-hook-form"),l=e(require("@licklist/plugins/dist/services/Form/FormErrorService")),u=require("./components/ZoneControl.js");exports.ZoneForm=function(e){var i=e.defaultValues,c=e.onSubmit,m=e.serverErrors,d=e.isLoading,f=void 0!==d&&d,b=e.workHours,p=n.useTranslation("Design").t,v=a.useForm({mode:"onChange",defaultValues:{zoneRecurrences:[]}}),E=v.reset,g=v.setError,q=v.handleSubmit,w=(0,v.watch)();return t.useEffect((function(){i&&E(i)}),[i,E]),t.useEffect((function(){m&&l.handleServerErrors(m,g)}),[m,g]),o.createElement(a.FormProvider,r.__assign({},v),o.createElement(s.Form,{onSubmit:q((function(e){e.localImageBlobURL;var t=r.__rest(e,["localImageBlobURL"]);c(t)}))},o.createElement(u.ZoneControl,{isLoading:f,workHours:b}),o.createElement(s.Row,null,o.createElement(s.Col,{md:6,sm:12}),o.createElement(s.Col,{className:"product-set-save-btn-wrapper p-0 pl-4 d-flex mw-100",md:6,sm:12},o.createElement(s.Button,{className:"product-set-save-btn mt-5 ml-5 d-no dne d-md-block",type:"submit",disabled:f||!w.name},p("saveAndClose"))))))};
@@ -2,7 +2,7 @@
2
2
  import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
3
3
  export type ZoneControlProps = {
4
4
  isLoading: boolean;
5
- workHours?: WorkHour[];
5
+ workHours: WorkHour[] | undefined;
6
6
  };
7
- export declare const ZoneControl: ({ isLoading }: ZoneControlProps) => JSX.Element;
7
+ export declare const ZoneControl: ({ isLoading, workHours }: ZoneControlProps) => JSX.Element;
8
8
  //# sourceMappingURL=ZoneControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZoneControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/ZoneControl.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAStF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,WAAW,kBAAmB,gBAAgB,gBA0B1D,CAAC"}
1
+ {"version":3,"file":"ZoneControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/ZoneControl.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAStF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,WAAW,6BAA8B,gBAAgB,gBA0BrE,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("react"),t=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,o=require("react-bootstrap"),n=require("./NameControl.js"),l=require("./ZoneTypeControl.js"),a=require("./SortControl.js"),i=require("./ZoneRecurrencesControl.js"),m=require("./DescriptionControl.js"),s=require("./ZoneImageControl.js"),c=require("./GameDurationControl.js");exports.ZoneControl=function(e){var r=e.isLoading;return t.createElement(o.Row,null,t.createElement(o.Col,{md:6,sm:12,className:"pr-5"},t.createElement(n.NameControl,{isLoading:r}),t.createElement(i.ZoneRecurrencesControl,null),t.createElement("hr",null),t.createElement(o.Row,null,t.createElement(o.Col,{md:6,sm:6},t.createElement(l.ZoneTypeControl,{isLoading:r}),t.createElement(a.SortControl,{isLoading:r}),t.createElement(c.GameDurationControl,{isLoading:r})),t.createElement(o.Col,{md:6,sm:6},t.createElement(s.ZoneImageControl,{isLoading:r}))),t.createElement("hr",null),t.createElement(o.Row,null,t.createElement(o.Col,{md:12,sm:12},t.createElement(m.DescriptionControl,{isLoading:r})))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("react"),o=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,t=require("react-bootstrap"),n=require("./NameControl.js"),l=require("./ZoneTypeControl.js"),a=require("./SortControl.js"),i=require("./ZoneRecurrencesControl.js"),s=require("./DescriptionControl.js"),m=require("./ZoneImageControl.js"),c=require("./GameDurationControl.js");exports.ZoneControl=function(e){var r=e.isLoading,u=e.workHours;return o.createElement(t.Row,null,o.createElement(t.Col,{md:6,sm:12,className:"pr-5"},o.createElement(n.NameControl,{isLoading:r}),o.createElement(i.ZoneRecurrencesControl,{workHours:u}),o.createElement("hr",null),o.createElement(t.Row,null,o.createElement(t.Col,{md:6,sm:6},o.createElement(l.ZoneTypeControl,{isLoading:r}),o.createElement(a.SortControl,{isLoading:r}),o.createElement(c.GameDurationControl,{isLoading:r})),o.createElement(t.Col,{md:6,sm:6},o.createElement(m.ZoneImageControl,{isLoading:r}))),o.createElement("hr",null),o.createElement(t.Row,null,o.createElement(t.Col,{md:12,sm:12},o.createElement(s.DescriptionControl,{isLoading:r})))))};
@@ -4,9 +4,9 @@ import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMa
4
4
  export interface DateAndRecurrenceInputValues {
5
5
  zoneRecurrences?: Partial<ZoneRecurrence>[];
6
6
  }
7
- export type ZoneRecurrenceControlProps = {
8
- workHours?: WorkHour[];
9
- isLoading?: boolean;
7
+ type ZoneRecurrenceControlProps = {
8
+ workHours: WorkHour[] | undefined;
10
9
  };
11
- export declare const ZoneRecurrencesControl: () => JSX.Element;
10
+ export declare const ZoneRecurrencesControl: ({ workHours, }: ZoneRecurrenceControlProps) => JSX.Element;
11
+ export {};
12
12
  //# sourceMappingURL=ZoneRecurrencesControl.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ZoneRecurrencesControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/ZoneRecurrencesControl.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;AAMlG,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAWtF,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;CAC7C;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,sBAAsB,mBAsMlC,CAAC"}
1
+ {"version":3,"file":"ZoneRecurrencesControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/ZoneRecurrencesControl.tsx"],"names":[],"mappings":";AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,kEAAkE,CAAC;AAMlG,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAWtF,MAAM,WAAW,4BAA4B;IAC3C,eAAe,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;CAC7C;AAED,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,sBAAsB,mBAEhC,0BAA0B,gBAuM5B,CAAC"}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,i=require("react-i18next"),o=require("react-bootstrap"),a=require("../../../static/Icon.js"),u=require("react-hook-form"),l=require("@react-aria/utils"),c=require("react-use");require("../../../static/index.js");var d=require("@dnd-kit/core"),s=require("@dnd-kit/sortable"),m=require("../../../modals/confirmation/ConfirmModal.js"),v=require("../../../recurring-date-picker-input/RecurringDatePickerInput.js"),f=require("../../../product-set/control/DateAndRecurrenceInput.js"),p=require("./ZoneRecurrenceControl.js");exports.ZoneRecurrencesControl=function(){var e,g,_=u.useFormContext(),E=_.control,q=_.register,x=_.formState.errors,C=_.getValues,D=_.setValue,R=_.clearErrors,b=u.useFieldArray({name:"zoneRecurrences",control:E,keyName:"_id"}),y=b.fields,I=b.append,S=b.update,k=b.move,z=r.__read(t.useState(!1),2),N=z[0],h=z[1],j=r.__read(t.useState({index:null,values:null}),2),T=j[0],A=j[1],w=function(){return A({index:null,values:null})},F=t.useRef();c.useClickAway(F,(function(e){var r,t,n;m.CONFIRM_MODAL_ACTIONS.includes(null===(n=null===(t=null===(r=e.target)||void 0===r?void 0:r.attributes)||void 0===t?void 0:t.getNamedItem("data-id"))||void 0===n?void 0:n.value)||(h(!1),w())}));var M=l.useId(),P=i.useTranslation(["Design","Validation"]).t,O=function(){w(),h((function(e){return!e}))};return t.useEffect((function(){y.length&&R("zoneRecurrences")}),[y,R]),n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,P("zoneAvailable")),n.createElement(o.OverlayTrigger,{show:N,overlay:n.createElement(o.Popover,{id:M,className:"rounded"},n.createElement(o.Popover.Content,{className:"shadow-lg rounded",ref:F},n.createElement(v.RecurringDatePickerInput,{defaultValues:T.values,onChange:function(e){return r.__awaiter(void 0,void 0,void 0,(function(){var t,n,i;return r.__generator(this,(function(r){return t={rrule:e.rrule,startDate:e.startDate,endDate:e.endDate,startTime:e.startTime,endTime:e.endTime},(null===(n=T.values)||void 0===n?void 0:n.id)&&(t.id=null===(i=T.values)||void 0===i?void 0:i.id),null!==T.index?S(T.index,t):I(t),h((function(){return!1})),w(),[2]}))}))},onDelete:function(){var e=T.index;h(!1),w(),setTimeout((function(){var r=C().zoneRecurrences;D("zoneRecurrences",(void 0===r?[]:r).filter((function(r,t){return t!==e})))}),100)},setInitialStartDateAfterSelect:!0}))),trigger:"click",placement:"bottom",popperConfig:{modifiers:[f.sameWidthPopperModifier]}},n.createElement("div",{className:"zone-recurrences"},n.createElement(d.DndContext,{onDragEnd:function(e){var r=e.over,t=e.active;if(r.id!==t.id){var n=y.findIndex((function(e){return String(e._id)===t.id})),i=y.findIndex((function(e){return String(e._id)===r.id}));k(n,i)}}},n.createElement(s.SortableContext,{items:null!==(e=null==y?void 0:y.map((function(e){return String(e._id)})))&&void 0!==e?e:[],strategy:s.verticalListSortingStrategy},null==y?void 0:y.map((function(e,r){return n.createElement(p.ZoneRecurrenceControl,{key:e._id,zoneRecurrence:e,onEdit:function(){return function(e,r){w(),A({index:r,values:e}),h((function(){return!0}))}(e,r)}})})))),n.createElement("div",{className:"zone-recurrence-icon-wrapper",role:"button",tabIndex:0,onClick:O,onKeyDown:O},n.createElement(a.default,{type:"plus-circle",height:"1rem",className:"zone-recurrence-icon-add mr-2"}),P("addDates")),n.createElement(o.Form.Control,r.__assign({type:"hidden"},q("zoneRecurrences",{required:{value:!0,message:P("Validation:fieldMinNumber",{attribute:P("dates"),min:1})}}))),n.createElement("div",{className:"manual-form-error"},null===(g=x.zoneRecurrences)||void 0===g?void 0:g.message))))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),t=require("react"),n=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,i=require("react-i18next"),o=require("react-bootstrap"),a=require("../../../static/Icon.js"),u=require("react-hook-form"),l=require("@react-aria/utils"),c=require("react-use");require("../../../static/index.js");var d=require("@dnd-kit/core"),s=require("@dnd-kit/sortable"),m=require("../../../modals/confirmation/ConfirmModal.js"),v=require("../../../recurring-date-picker-input/RecurringDatePickerInput.js"),f=require("../../../product-set/control/DateAndRecurrenceInput.js"),p=require("./ZoneRecurrenceControl.js");exports.ZoneRecurrencesControl=function(e){var g,_,E=e.workHours,q=u.useFormContext(),x=q.control,C=q.register,D=q.formState.errors,R=q.getValues,b=q.setValue,k=q.clearErrors,y=u.useFieldArray({name:"zoneRecurrences",control:x,keyName:"_id"}),I=y.fields,S=y.append,z=y.update,N=y.move,h=r.__read(t.useState(!1),2),j=h[0],w=h[1],T=r.__read(t.useState({index:null,values:null}),2),A=T[0],F=T[1],M=function(){return F({index:null,values:null})},P=t.useRef();c.useClickAway(P,(function(e){var r,t,n;m.CONFIRM_MODAL_ACTIONS.includes(null===(n=null===(t=null===(r=e.target)||void 0===r?void 0:r.attributes)||void 0===t?void 0:t.getNamedItem("data-id"))||void 0===n?void 0:n.value)||(w(!1),M())}));var O=l.useId(),V=i.useTranslation(["Design","Validation"]).t,L=function(){M(),w((function(e){return!e}))};return t.useEffect((function(){I.length&&k("zoneRecurrences")}),[I,k]),n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,V("zoneAvailable")),n.createElement(o.OverlayTrigger,{show:j,overlay:n.createElement(o.Popover,{id:O,className:"rounded"},n.createElement(o.Popover.Content,{className:"shadow-lg rounded",ref:P},n.createElement(v.RecurringDatePickerInput,{defaultValues:A.values,onChange:function(e){return r.__awaiter(void 0,void 0,void 0,(function(){var t,n,i;return r.__generator(this,(function(r){return t={rrule:e.rrule,startDate:e.startDate,endDate:e.endDate,startTime:e.startTime,endTime:e.endTime},(null===(n=A.values)||void 0===n?void 0:n.id)&&(t.id=null===(i=A.values)||void 0===i?void 0:i.id),null!==A.index?z(A.index,t):S(t),w((function(){return!1})),M(),[2]}))}))},onDelete:function(){var e=A.index;w(!1),M(),setTimeout((function(){var r=R().zoneRecurrences;b("zoneRecurrences",(void 0===r?[]:r).filter((function(r,t){return t!==e})))}),100)},setInitialStartDateAfterSelect:!0,workHours:E}))),trigger:"click",placement:"bottom",popperConfig:{modifiers:[f.sameWidthPopperModifier]}},n.createElement("div",{className:"zone-recurrences"},n.createElement(d.DndContext,{onDragEnd:function(e){var r=e.over,t=e.active;if(r.id!==t.id){var n=I.findIndex((function(e){return String(e._id)===t.id})),i=I.findIndex((function(e){return String(e._id)===r.id}));N(n,i)}}},n.createElement(s.SortableContext,{items:null!==(g=null==I?void 0:I.map((function(e){return String(e._id)})))&&void 0!==g?g:[],strategy:s.verticalListSortingStrategy},null==I?void 0:I.map((function(e,r){return n.createElement(p.ZoneRecurrenceControl,{key:e._id,zoneRecurrence:e,onEdit:function(){return function(e,r){M(),F({index:r,values:e}),w((function(){return!0}))}(e,r)}})})))),n.createElement("div",{className:"zone-recurrence-icon-wrapper",role:"button",tabIndex:0,onClick:L,onKeyDown:L},n.createElement(a.default,{type:"plus-circle",height:"1rem",className:"zone-recurrence-icon-add mr-2"}),V("addDates")),n.createElement(o.Form.Control,r.__assign({type:"hidden"},C("zoneRecurrences",{required:{value:!0,message:V("Validation:fieldMinNumber",{attribute:V("dates"),min:1})}}))),n.createElement("div",{className:"manual-form-error"},null===(_=D.zoneRecurrences)||void 0===_?void 0:_.message))))};
@@ -1 +1 @@
1
- {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/utils/dates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAOtF,eAAO,MAAM,qBAAqB,cACrB,MAAM,WACR,MAAM,6BAuChB,CAAC;AAEF,eAAO,MAAM,wBAAwB,eAAgB,QAAQ,EAAE,aA0C9D,CAAC"}
1
+ {"version":3,"file":"dates.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/utils/dates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAOtF,eAAO,MAAM,qBAAqB,cACrB,MAAM,WACR,MAAM,6BAuChB,CAAC;AAEF,eAAO,MAAM,wBAAwB,eAAgB,QAAQ,EAAE,aAyC9D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@licklist/design",
3
- "version": "0.62.2",
3
+ "version": "0.62.3-dev.1",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+ssh://git@bitbucket.org/artelogicsoft/licklist_design.git"
@@ -16,14 +16,11 @@
16
16
  "type-check:watch": "yarn type-check -- --watch",
17
17
  "build": "rollup -c",
18
18
  "watch": "yarn build -- -w",
19
- "test": "jest --verbose --coverage --watchAll=false",
20
- "run-test": "jest --verbose --watchAll=false",
21
19
  "lint": "eslint --ext .ts,.tsx .",
22
20
  "lint:fix": "yarn run lint -- --fix",
23
21
  "lint:format": "prettier \"**/*.{md,json,yml,scss}\" --check",
24
22
  "lint:format:fix": "prettier \"**/*.{md,json,yml,scss}\" --write",
25
23
  "prepare": "husky install",
26
- "test-staged": "CI=true jest --passWithNoTests --findRelatedTests",
27
24
  "tests": "yarn tests-staged",
28
25
  "prettier-write": "prettier --write",
29
26
  "tsc": "bash -c tsc -p tsconfig.json -b"
@@ -53,9 +50,9 @@
53
50
  "@fortawesome/free-brands-svg-icons": "5.15.2",
54
51
  "@fortawesome/free-solid-svg-icons": "5.15.2",
55
52
  "@fortawesome/react-fontawesome": "0.1.9",
56
- "@licklist/core": "^0.23.1",
57
- "@licklist/eslint-config": "0.3.4",
58
- "@licklist/plugins": "^0.27.2",
53
+ "@licklist/core": ">=0.25.0-dev.0 < 0.25.0",
54
+ "@licklist/eslint-config": "0.4.5",
55
+ "@licklist/plugins": ">=0.28.0-dev.0 < 0.28.0",
59
56
  "@mdx-js/react": "1.6.22",
60
57
  "@popperjs/core": "2.11.8",
61
58
  "@react-aria/utils": "3.9.0",
@@ -73,10 +70,6 @@
73
70
  "@svgr/rollup": "5.5.0",
74
71
  "@svgr/webpack": "5.5.0",
75
72
  "@tanstack/react-table": "8.10.6",
76
- "@testing-library/jest-dom": "5.16.1",
77
- "@testing-library/react": "11.2.5",
78
- "@testing-library/react-hooks": "5.1.0",
79
- "@testing-library/user-event": "13.5.0",
80
73
  "@tiptap/core": "2.0.0-beta.176",
81
74
  "@tiptap/extension-blockquote": "2.0.0-beta.29",
82
75
  "@tiptap/extension-bold": "2.0.0-beta.28",
@@ -99,14 +92,10 @@
99
92
  "@tiptap/react": "2.0.0-beta.109",
100
93
  "@tiptap/suggestion": "2.0.0-beta.92",
101
94
  "@types/babel__core": "7.1.12",
102
- "@types/enzyme-adapter-react-16": "1.0.6",
103
- "@types/jest": "26.0.20",
104
95
  "@types/luxon": "1.26.2",
105
96
  "@types/mdx-js__react": "1.5.3",
106
- "@types/react": "17.0.2",
107
97
  "@types/react-bootstrap": "1.0.1",
108
98
  "@types/react-date-range": "^1.4.4",
109
- "@types/react-dom": "17.0.1",
110
99
  "@types/react-email-editor": "1.1.7",
111
100
  "@types/react-loader": "2.4.4",
112
101
  "@types/react-phone-number-input": "3.0.6",
@@ -116,7 +105,6 @@
116
105
  "@typescript-eslint/eslint-plugin": "5.8.1",
117
106
  "@typescript-eslint/parser": "5.8.1",
118
107
  "@wojtekmaj/react-daterange-picker": "^4.1.0",
119
- "babel-jest": "26.6.3",
120
108
  "babel-loader": "8.2.2",
121
109
  "babel-plugin-inline-react-svg": "2.0.1",
122
110
  "bootstrap": "4.6.0",
@@ -128,21 +116,16 @@
128
116
  "emojibase": "6.1.0",
129
117
  "emojibase-data": "7.0.1",
130
118
  "emojibase-regex": "6.0.1",
131
- "enzyme": "3.11.0",
132
- "enzyme-adapter-react-16": "1.15.6",
133
119
  "eslint": "7.32.0",
134
120
  "eslint-config-airbnb": "18.2.1",
135
121
  "eslint-config-prettier": "8.3.0",
136
- "eslint-plugin-jest": "25.3.2",
137
122
  "eslint-plugin-jsx-a11y": "6.5.1",
138
123
  "eslint-plugin-prettier": "4.0.0",
139
124
  "eslint-plugin-react-hooks": "4.2.0",
140
- "eslint-plugin-testing-library": "5.0.1",
141
125
  "framer-motion": "4.1.17",
142
126
  "history": "5.3.0",
143
127
  "husky": "7.0.4",
144
128
  "i18next": "19.4.5",
145
- "jest": "26.6.0",
146
129
  "klona": "2.0.4",
147
130
  "konva": "6.0.0",
148
131
  "lint-staged": "11.1.2",
@@ -150,18 +133,18 @@
150
133
  "luxon": "1.26.0",
151
134
  "moment": "2.29.1",
152
135
  "prettier": "2.5.1",
153
- "react": "16.14.0",
136
+ "react": "17.0.2",
154
137
  "react-bootstrap": "1.6.1",
155
138
  "react-color": "2.19.3",
156
139
  "react-copy-to-clipboard": "5.0.3",
157
140
  "react-date-range": "^1.4.0",
158
- "react-dom": "16.14.0",
141
+ "react-dom": "17.0.2",
159
142
  "react-email-editor": "1.6.1",
160
143
  "react-highlighter": "0.4.3",
161
144
  "react-hook-form": "7.13.0",
162
145
  "react-i18next": "11.8.8",
163
146
  "react-intl": "5.15.8",
164
- "react-konva": "16.13.0-6",
147
+ "react-konva": "^17.0.2-6",
165
148
  "react-loader": "2.4.7",
166
149
  "react-loading-skeleton": "^3.3.1",
167
150
  "react-overlays": "4.1.1",
@@ -186,7 +169,6 @@
186
169
  "sass": "1.32.8",
187
170
  "sass-loader": "10.1.1",
188
171
  "style-loader": "2.0.0",
189
- "ts-jest": "26.5.2",
190
172
  "twemoji-parser": "14.0.0",
191
173
  "typescript": "4.9.5",
192
174
  "url-loader": "4.1.1",
@@ -194,24 +176,17 @@
194
176
  },
195
177
  "resolutions": {
196
178
  "@types/react": "17.0.2",
197
- "@types/react-dom": "17.0.1"
198
- },
199
- "jest": {
200
- "setupFilesAfterEnv": [
201
- "./jest.config.js"
202
- ],
203
- "snapshotSerializers": [
204
- "enzyme-to-json/serializer"
205
- ]
179
+ "@types/react-dom": "17.0.2"
206
180
  },
207
181
  "lint-staged": {
208
182
  "*.{ts,tsx}": [
209
- "yarn test-staged",
210
183
  "yarn prettier-write",
211
184
  "yarn lint:fix"
212
185
  ]
213
186
  },
214
187
  "devDependencies": {
188
+ "@types/react": "17.0.2",
189
+ "@types/react-dom": "17.0.2",
215
190
  "identity-obj-proxy": "^3.0.0"
216
191
  },
217
192
  "volta": {
@@ -8,7 +8,7 @@ export default {
8
8
  component: DateTimeButton,
9
9
  } as Meta;
10
10
 
11
- const date = DateTime.now();
11
+ const date = DateTime.now().plus({ hour: 1 });
12
12
 
13
13
  export const Default: Story<DateTimeButtonProps> = (args) => {
14
14
  return <DateTimeButton {...args} />;
@@ -19,6 +19,7 @@ Default.args = {
19
19
  isSelected: false,
20
20
  isDisabled: false,
21
21
  onSelect: () => null,
22
+ shouldCalculateResources: false,
22
23
  };
23
24
 
24
25
  export const Selected: Story<DateTimeButtonProps> = (args) => {
@@ -46,7 +46,7 @@ export const DateTimeButton = ({
46
46
 
47
47
  const isTimeVariant = variant === Variant.time;
48
48
 
49
- const isTimeInPast = isTimeVariant && isDateInPast(date);
49
+ const isPast = variant === Variant.time ? isPastTime(date) : isPastDate(date);
50
50
 
51
51
  const noResources =
52
52
  shouldCalculateResources &&
@@ -55,7 +55,7 @@ export const DateTimeButton = ({
55
55
  !has(resources, "bookedResources") ||
56
56
  !has(resources, "totalResources"));
57
57
 
58
- const isDisabled = _isDisabled || isSoldOut || isTimeInPast || noResources;
58
+ const isDisabled = _isDisabled || isSoldOut || isPast || noResources;
59
59
 
60
60
  return (
61
61
  <button
@@ -85,7 +85,7 @@ export const DateTimeButton = ({
85
85
  {showResources && resources && (
86
86
  <AvailabilityIndicator
87
87
  resources={resources}
88
- isUnavailable={_isDisabled || isTimeInPast}
88
+ isUnavailable={_isDisabled || isPast}
89
89
  isSoldOut={isSoldOut}
90
90
  />
91
91
  )}
@@ -93,5 +93,7 @@ export const DateTimeButton = ({
93
93
  );
94
94
  };
95
95
 
96
- const isDateInPast = (date: DateTime): boolean =>
97
- date.toUTC() <= DateTime.now().toUTC();
96
+ const isPastTime = (date: DateTime): boolean => DateTime.now() > date;
97
+
98
+ const isPastDate = (date: DateTime): boolean =>
99
+ DateTime.now() > date.set({ hour: 23, minute: 59, second: 59 });
@@ -19,6 +19,7 @@ import { scrollToError } from "@licklist/plugins/dist/utils/ScrollUtils";
19
19
  import { getFirstErrorKey } from "@licklist/plugins/dist/utils/FormValues";
20
20
 
21
21
  import { ProductSet } from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
22
+ import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
22
23
  import { CategoryGroup } from "../../../../types/categories";
23
24
  import { SaleDeadline } from "../SaleDeadline/SaleDeadline";
24
25
  import {
@@ -64,6 +65,7 @@ export interface EditEventFormProps extends HasPermissionProp {
64
65
  createProductSet: (props: EditEventFormValues) => void;
65
66
  setEditProductSetId: (value: string) => void;
66
67
  isExternalPaymentLinkEnabled?: boolean;
68
+ workHours: WorkHour[] | undefined;
67
69
  }
68
70
 
69
71
  const eventImageTypes = {
@@ -83,6 +85,7 @@ export const EditEventForm = ({
83
85
  createProductSet,
84
86
  setEditProductSetId,
85
87
  isExternalPaymentLinkEnabled,
88
+ workHours,
86
89
  }: EditEventFormProps) => {
87
90
  const { t } = useTranslation(["Design", "Validation"]);
88
91
 
@@ -403,6 +406,7 @@ export const EditEventForm = ({
403
406
  setEditProductSetId={setEditProductSetId}
404
407
  setShowEditProductSet={setShowEditProductSet}
405
408
  showEditProductSet={showEditProductSet}
409
+ workHours={workHours}
406
410
  />
407
411
 
408
412
  {hasPermission && !showEditProductSet && (
@@ -5,6 +5,7 @@ import { useId } from "@react-aria/utils";
5
5
  import { Controller, useFormContext } from "react-hook-form";
6
6
  import { HasPermissionProp } from "@licklist/plugins/dist/types/permission/Permission";
7
7
  import { ProductSet } from "@licklist/core/dist/DataMapper/Product/ProductSetDataMapper";
8
+ import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
8
9
  import { ConfirmModal } from "../../../../modals/confirmation/ConfirmModal";
9
10
  import { EditEventFormValues } from "../EditEventForm/EditEventForm";
10
11
  import { EditEventProductSet } from "./component/EditEventProductSet";
@@ -15,6 +16,7 @@ interface SelectEventProductSetProps extends HasPermissionProp {
15
16
  setShowEditProductSet: (value: boolean) => void;
16
17
  createProductSet: (props: EditEventFormValues) => void;
17
18
  setEditProductSetId: (value: string) => void;
19
+ workHours: WorkHour[] | undefined;
18
20
  }
19
21
 
20
22
  export const SelectEventProductSet = ({
@@ -23,6 +25,7 @@ export const SelectEventProductSet = ({
23
25
  setEditProductSetId,
24
26
  showEditProductSet,
25
27
  setShowEditProductSet,
28
+ workHours,
26
29
  }: SelectEventProductSetProps) => {
27
30
  const { t } = useTranslation(["Design"]);
28
31
  const form = useFormContext<EditEventFormValues>();
@@ -199,14 +202,13 @@ export const SelectEventProductSet = ({
199
202
  </Form.Group>
200
203
  </div>
201
204
  {showEditProductSet && productSetId && (
202
- <>
203
- <EditEventProductSet
204
- onSubmit={onSubmit}
205
- defaultValues={
206
- productSetId === editedProductSet?.id && editedProductSet
207
- }
208
- />
209
- </>
205
+ <EditEventProductSet
206
+ onSubmit={onSubmit}
207
+ defaultValues={
208
+ productSetId === editedProductSet?.id && editedProductSet
209
+ }
210
+ workHours={workHours}
211
+ />
210
212
  )}
211
213
  </>
212
214
  );
@@ -5,6 +5,7 @@ import { isEqual } from "lodash";
5
5
  import { useParams } from "react-router-dom";
6
6
  import { useEventEditProductSetContext } from "@licklist/plugins/dist/context/event/EventEditProductSetContext";
7
7
  import { useTranslation } from "react-i18next";
8
+ import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
8
9
  import { BlockLoader } from "../../../../../static/loader/BlockLoader";
9
10
  import { ProductSetControl } from "../../../../../product-set";
10
11
  import { ProductSetContextProvider } from "../../../../../product-set/form/context";
@@ -22,11 +23,13 @@ export interface EventDates {
22
23
  interface EditEventProductSetProps {
23
24
  onSubmit: (value: EditEventFormValues["editedProductSet"]) => void;
24
25
  defaultValues?: EditEventFormValues["editedProductSet"];
26
+ workHours: WorkHour[] | undefined;
25
27
  }
26
28
 
27
29
  export const EditEventProductSet = ({
28
30
  onSubmit,
29
31
  defaultValues,
32
+ workHours,
30
33
  }: EditEventProductSetProps) => {
31
34
  const { companyId } = useParams<{
32
35
  companyId: string;
@@ -124,6 +127,7 @@ export const EditEventProductSet = ({
124
127
  companyName={selectedCompany?.title}
125
128
  fee={feeInPercent}
126
129
  isEventEditProductSet
130
+ workHours={workHours}
127
131
  />
128
132
  <Button
129
133
  disabled={isLoading}
@@ -63,7 +63,7 @@ const processedPaymentSummary = ({
63
63
  const total = calculateTotalPrice(order, externalPaymentDetail);
64
64
 
65
65
  const totalDiscount = calculateTotalDiscount(order.payments);
66
- const totalWithDiscount = total - Number(totalDiscount);
66
+
67
67
  let summaryItems: SummaryItem[] = [
68
68
  {
69
69
  translateKey: AMOUNT_TOTAL,
@@ -74,7 +74,7 @@ const processedPaymentSummary = ({
74
74
  if (totalDiscount) {
75
75
  summaryItems.push({
76
76
  translateKey: AMOUNT_WITH_DISCOUNT,
77
- price: totalWithDiscount < 0 ? 0 : totalWithDiscount,
77
+ price: order.totalToPayAmount,
78
78
  });
79
79
  }
80
80
 
@@ -84,17 +84,17 @@ const processedPaymentSummary = ({
84
84
 
85
85
  summaryItems.push({
86
86
  translateKey: TOTAL_PAID,
87
- price: totalWithDiscount <= 0 ? 0 : order.totalAmount,
87
+ price: order.paidAmount,
88
88
  });
89
- if (totalWithDiscount <= 0) {
89
+ if (order.totalToPayAmount <= 0) {
90
90
  return summaryItems;
91
91
  }
92
92
  summaryItems = [...summaryItems, ...externalPaymentDetail];
93
93
 
94
- if (totalWithDiscount > order.totalAmount) {
94
+ if (order.remainingToPay) {
95
95
  summaryItems.push({
96
96
  translateKey: REMAINING_TO_PAY,
97
- price: totalWithDiscount - order.totalAmount,
97
+ price: order.remainingToPay,
98
98
  });
99
99
  }
100
100
  return summaryItems;
@@ -123,18 +123,26 @@ export const RyftPaymentForm = ({
123
123
  };
124
124
 
125
125
  useEffect(
126
- () =>
126
+ () => {
127
+ if (
128
+ !formRef.current?.childNodes?.length ||
129
+ formRef.current?.childNodes?.length < 3 ||
130
+ !accountId.data?.account_id
131
+ ) {
132
+ return;
133
+ }
127
134
  injectComponentsInRyftForm({
128
135
  t,
129
136
  additionalPaymentMethodsEnabled:
130
137
  providerPaymentSettings?.additionalPaymentMethodsEnabled,
131
- }),
138
+ });
139
+ },
132
140
  // eslint-disable-next-line react-hooks/exhaustive-deps
133
141
  [formRef.current?.childNodes?.length]
134
142
  );
135
143
 
136
144
  useEffect(() => {
137
- if (!accountId.data || accountId.isError) return;
145
+ if (!accountId.data?.account_id || accountId.isError) return;
138
146
 
139
147
  initRyft(
140
148
  () => {
@@ -148,7 +156,7 @@ export const RyftPaymentForm = ({
148
156
  );
149
157
 
150
158
  // eslint-disable-next-line react-hooks/exhaustive-deps
151
- }, [accountId.data]);
159
+ }, [accountId.data?.account_id]);
152
160
 
153
161
  if (accountId.isLoading || accountId.isFetching || isCreateLoading)
154
162
  return (
@@ -8,13 +8,12 @@ export const injectComponentsInRyftForm = ({
8
8
  additionalPaymentMethodsEnabled?: boolean;
9
9
  }) => {
10
10
  const cardContainer = document.getElementById("ryft-pay-iframe");
11
- const oldCardDividerContainer = document.getElementById(
12
- "card-title-container"
13
- );
14
11
 
15
- if (!cardContainer || oldCardDividerContainer) {
12
+ if (!cardContainer) {
16
13
  return;
17
14
  }
15
+ // Removing of the old title container
16
+ document.getElementById("card-title-container")?.remove();
18
17
 
19
18
  const cardTitle = document.createElement("div");
20
19
  const cardText = document.createElement("div");
@@ -32,6 +31,10 @@ export const injectComponentsInRyftForm = ({
32
31
  return;
33
32
  }
34
33
 
34
+ // Removing of the old mobile title container and divider container
35
+ document.getElementById("mobile-pay-title")?.remove();
36
+ document.getElementById("mobile-pay-divider-container")?.remove();
37
+
35
38
  // Adding title and divider for apple and google pay button
36
39
  const mobilePayTitle = document.createElement("div");
37
40
  const dividerText = document.createElement("div");
@@ -39,6 +42,7 @@ export const injectComponentsInRyftForm = ({
39
42
  const container = document.createElement("div");
40
43
  mobilePayTitle.className = "mobile-pay-title";
41
44
  mobilePayTitle.innerText = t("Design:expressCheckoutWith");
45
+ mobilePayTitle.id = "mobile-pay-title";
42
46
  dividerText.id = "mobile-pay-divider-text";
43
47
  dividerText.innerText = "or";
44
48
  divider.id = "mobile-pay-divider";
@@ -36,7 +36,7 @@ export interface DateAndRecurrenceInputValues {
36
36
 
37
37
  interface DateAndRecurrenceInputProps {
38
38
  isEventEditProductSet?: boolean;
39
- workHours?: WorkHour[];
39
+ workHours: WorkHour[] | undefined;
40
40
  providerHasBookingManagement: boolean;
41
41
  isLoading?: boolean;
42
42
  }
@@ -90,7 +90,7 @@ export const DateAndRecurrenceInput = ({
90
90
  clearEditState();
91
91
  });
92
92
 
93
- const popoverId = useId()!;
93
+ const popoverId = useId();
94
94
 
95
95
  const { t } = useTranslation("Design");
96
96
 
@@ -228,6 +228,7 @@ export const DateAndRecurrenceInput = ({
228
228
  defaultValues={editState.values}
229
229
  onChange={handleRecurringDateChange}
230
230
  onDelete={handleDelete}
231
+ workHours={workHours}
231
232
  >
232
233
  {providerHasBookingManagement && (
233
234
  <AvailableTimesControl
@@ -5,9 +5,8 @@ import { Form, OverlayTrigger, Popover } from "react-bootstrap";
5
5
  import { useFieldArray, useFormContext } from "react-hook-form";
6
6
  import { useTranslation } from "react-i18next";
7
7
  import { useClickAway } from "react-use";
8
- import { TIMEZONE } from "@licklist/core/dist/Config/Date";
8
+ import { UTC_TIMEZONE, TIME_FORMAT } from "@licklist/core/dist/Config/Date";
9
9
  import { ProductSetRecurrence } from "@licklist/core/dist/DataMapper/Product/ProductSetRecurrenceDataMapper";
10
- import { TIME_FORMAT } from "@licklist/core/dist/Config/Date";
11
10
  import { DateTime } from "luxon";
12
11
  import RRule, { Frequency } from "rrule";
13
12
  import { WorkHour } from "@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper";
@@ -27,7 +26,6 @@ import {
27
26
  import { ProductSetRecurrenceOverridesControl } from "./ProductSetRecurrenceOverridesControl";
28
27
  import { MAX_QUANTITY_RECURRENCE_DATE_IN_OVERRIDE } from "../product/constants";
29
28
 
30
-
31
29
  export interface DateAndRecurrenceInputValues {
32
30
  menuRecurrences?: Partial<ProductSetRecurrence>[];
33
31
  }
@@ -138,7 +136,7 @@ export const DateInput = ({
138
136
  until: (start as DateTime).toJSDate(),
139
137
  byweekday: [],
140
138
  freq: Frequency.DAILY,
141
- tzid: TIMEZONE,
139
+ tzid: UTC_TIMEZONE,
142
140
  interval: 1,
143
141
  }).replace("RRULE:", "");
144
142
 
@@ -85,7 +85,7 @@ export interface ProductSetControlProps {
85
85
  fieldSets?: FieldSet[];
86
86
  showEmailTemplate?: boolean;
87
87
  showSmsTemplate?: boolean;
88
- workHours?: WorkHour[];
88
+ workHours: WorkHour[] | undefined;
89
89
  providerHasBookingManagement?: boolean;
90
90
  isOverrides?: boolean;
91
91
  }
@@ -307,7 +307,7 @@ export function ProductCategoriesControl({
307
307
  title={t("addCategory")}
308
308
  isOverride={isOverrides}
309
309
  onClick={() => {
310
- if (isOverrides) return;
310
+ if (isOverrides) return;
311
311
  setIsSelectCategoryVisible(true);
312
312
  }}
313
313
  />
@@ -26,12 +26,16 @@ import { checkAvailableTimesErrors, getFilteredTemplates } from "../utils";
26
26
  export interface WithIsLoading {
27
27
  isLoading: boolean;
28
28
  }
29
+ export interface WithIdOptional {
30
+ id?: number;
31
+ }
32
+
29
33
  export interface WithId {
30
34
  id: number;
31
35
  }
32
36
  export interface ProductSetFormValues
33
37
  extends FormValues,
34
- WithId,
38
+ WithIdOptional,
35
39
  ProductSetControlValues {
36
40
  steps: Step[];
37
41
  isOverrides?: boolean;
@@ -24,8 +24,10 @@ export const useSortableTreeFunctions = ({
24
24
  const cancelChanges = (index: number) => {
25
25
  if (isOverrides) return;
26
26
  if (!previousValue) {
27
+ // eslint-disable-next-line consistent-return
27
28
  return remove(index);
28
29
  }
30
+ // eslint-disable-next-line consistent-return
29
31
  return setValue(`${fieldName}.${index}` as const, previousValue);
30
32
  };
31
33