@licklist/design 0.44.486-dev.18 → 0.44.486-dev.2
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.
- package/dist/collapsible-input-group/CollapsibleInputGroup.js +1 -1
- package/dist/date-time-button/DateTimeButton.js +1 -1
- package/dist/events/edit-event-modal/IntervalInput.d.ts.map +1 -1
- package/dist/events/edit-event-modal/IntervalInput.js +1 -1
- package/dist/events/event-venue-map/hooks/useImage.d.ts.map +1 -1
- package/dist/events/event-venue-map/hooks/useImage.js +1 -1
- package/dist/iframe/activity-cards/activity-card/ActivityCard.d.ts +12 -0
- package/dist/iframe/activity-cards/activity-card/ActivityCard.d.ts.map +1 -0
- package/dist/iframe/activity-cards/activity-card/ActivityCard.js +1 -0
- package/dist/iframe/activity-cards/index.d.ts +3 -0
- package/dist/iframe/activity-cards/index.d.ts.map +1 -0
- package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.d.ts +12 -0
- package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.d.ts.map +1 -0
- package/dist/iframe/activity-cards/list-activity-card/ListActivityCard.js +1 -0
- package/dist/iframe/event/event-calendar/EventCalendar.d.ts +3 -5
- package/dist/iframe/event/event-calendar/EventCalendar.d.ts.map +1 -1
- package/dist/iframe/event/event-calendar/EventCalendar.js +1 -1
- package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.d.ts +2 -3
- package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.d.ts.map +1 -1
- package/dist/iframe/event/event-calendar/components/CalendarDate/CalendarDate.js +1 -1
- package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.d.ts +3 -5
- package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.d.ts.map +1 -1
- package/dist/iframe/event/event-calendar/components/CalendarDates/CalendarDates.js +1 -1
- package/dist/iframe/index.d.ts +1 -1
- package/dist/iframe/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts +1 -1
- package/dist/iframe/order-process/components/BookingSummary/BookingSummary.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummary/BookingSummary.js +1 -1
- package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts +0 -1
- package/dist/iframe/order-process/components/BookingSummary/types/index.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.d.ts.map +1 -1
- package/dist/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.js +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts +2 -3
- package/dist/iframe/order-process/components/utils/useCategoryVerification.d.ts.map +1 -1
- package/dist/iframe/order-process/components/utils/useCategoryVerification.js +1 -1
- package/dist/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.d.ts.map +1 -1
- package/dist/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.js +1 -1
- package/dist/iframe/payment/order-items-table/hooks/useTableData.d.ts.map +1 -1
- package/dist/iframe/payment/order-items-table/hooks/useTableData.js +1 -1
- package/dist/iframe/payment/order-items-table/types/index.d.ts +1 -7
- package/dist/iframe/payment/order-items-table/types/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
- package/dist/notification/email-template/control/EmailTemplateControl.js +1 -1
- package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductCategoriesControl.js +1 -1
- package/dist/product-set/form/ProductsControl.d.ts +1 -3
- package/dist/product-set/form/ProductsControl.d.ts.map +1 -1
- package/dist/product-set/form/ProductsControl.js +1 -1
- package/dist/product-set/product/ProductControl.d.ts +1 -2
- package/dist/product-set/product/ProductControl.d.ts.map +1 -1
- package/dist/product-set/product/ProductControl.js +1 -1
- package/dist/product-set/product/duration/ProductDurationControl.js +1 -1
- package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
- package/dist/product-set/product-category/ProductCategoryControl.js +1 -1
- package/dist/provider/working-hours-input/WorkingHoursInputDescription.d.ts.map +1 -1
- package/dist/provider/working-hours-input/WorkingHoursInputDescription.js +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.d.ts +1 -2
- package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceEndInput.js +1 -1
- package/dist/recurrence-input/RecurrenceInput.d.ts +1 -2
- package/dist/recurrence-input/RecurrenceInput.d.ts.map +1 -1
- package/dist/recurrence-input/RecurrenceInput.js +1 -1
- package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.d.ts +1 -4
- package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.d.ts.map +1 -1
- package/dist/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.js +1 -1
- package/dist/snippet/snippet-template/preview/Preview.js +1 -1
- package/dist/static/CountryCodeSelect.d.ts.map +1 -1
- package/dist/static/CountryCodeSelect.js +1 -1
- package/dist/static/form-number-input/FormNumberInput.d.ts +1 -2
- package/dist/static/form-number-input/FormNumberInput.d.ts.map +1 -1
- package/dist/static/form-number-input/FormNumberInput.js +1 -1
- package/dist/styles/{activity-card/GridActivitiesCard.scss → iframe-customers-journey/ActivitiesCard.scss} +1 -1
- package/dist/styles/{activity-card/ListActivitiesCard.scss → iframe-customers-journey/ActivitiesSelectedCard.scss} +1 -2
- package/dist/styles/iframe-customers-journey/_index.scss +3 -0
- package/dist/styles/iframe-events/Calendar.scss +14 -14
- package/dist/styles/iframe-page/PageBody.scss +2 -3
- package/dist/styles/notification/Notification.scss +0 -4
- package/dist/styles/packages.scss +1 -2
- package/dist/styles/resources-blocking/_index.scss +0 -5
- package/dist/styles/themes/bookedit/_index.scss +0 -1
- package/dist/zone/form/components/AvailableTimesControl.d.ts.map +1 -1
- package/dist/zone/form/components/AvailableTimesControl.js +1 -1
- package/dist/zone/form/components/ZoneControl.d.ts.map +1 -1
- package/dist/zone/form/components/ZoneControl.js +1 -1
- package/dist/zone/form/components/ZoneRecurrencesControl.d.ts.map +1 -1
- package/dist/zone/form/components/ZoneRecurrencesControl.js +1 -1
- package/dist/zone/form/utils/dates.d.ts.map +1 -1
- package/dist/zone/form/utils/dates.js +1 -1
- package/package.json +1 -1
- package/src/collapsible-input-group/CollapsibleInputGroup.tsx +1 -1
- package/src/date-time-button/DateTimeButton.tsx +1 -1
- package/src/events/edit-event-modal/IntervalInput.tsx +0 -3
- package/src/events/event-venue-map/hooks/useImage.tsx +8 -17
- package/src/iframe/{activity-card → activity-cards/activity-card}/ActivityCard.stories.tsx +1 -24
- package/src/iframe/activity-cards/activity-card/ActivityCard.tsx +38 -0
- package/src/iframe/activity-cards/index.ts +2 -0
- package/src/iframe/activity-cards/list-activity-card/ListActivityCard.stories.tsx +52 -0
- package/src/iframe/activity-cards/list-activity-card/ListActivityCard.tsx +49 -0
- package/src/iframe/event/event-calendar/EventCalendar.stories.tsx +21 -20
- package/src/iframe/event/event-calendar/EventCalendar.tsx +3 -10
- package/src/iframe/event/event-calendar/components/CalendarDate/CalendarDate.tsx +2 -10
- package/src/iframe/event/event-calendar/components/CalendarDates/CalendarDates.tsx +2 -6
- package/src/iframe/index.ts +1 -1
- package/src/iframe/order-process/components/BookingSummary/BookingSummary.tsx +0 -2
- package/src/iframe/order-process/components/BookingSummary/types/index.ts +0 -1
- package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx +2 -2
- package/src/iframe/order-process/components/utils/useCategoryVerification.ts +29 -28
- package/src/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.tsx +1 -6
- package/src/iframe/payment/order-items-table/hooks/useTableData.tsx +99 -11
- package/src/iframe/payment/order-items-table/types/index.ts +1 -18
- package/src/notification/email-template/control/EmailTemplateControl.tsx +1 -26
- package/src/product-set/form/ProductCategoriesControl.tsx +0 -2
- package/src/product-set/form/ProductSetForm.stories.tsx +0 -1
- package/src/product-set/form/ProductsControl.tsx +0 -10
- package/src/product-set/product/ProductControl.tsx +8 -31
- package/src/product-set/product/duration/ProductDurationControl.tsx +1 -1
- package/src/product-set/product-category/ProductCategoryControl.tsx +5 -15
- package/src/provider/working-hours-input/WorkingHoursInputDescription.tsx +8 -10
- package/src/recurrence-input/RecurrenceEndInput.tsx +9 -27
- package/src/recurrence-input/RecurrenceInput.tsx +0 -3
- package/src/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.tsx +13 -23
- package/src/static/CountryCodeSelect.tsx +5 -3
- package/src/static/form-number-input/FormNumberInput.tsx +1 -8
- package/src/styles/{activity-card/GridActivitiesCard.scss → iframe-customers-journey/ActivitiesCard.scss} +1 -1
- package/src/styles/{activity-card/ListActivitiesCard.scss → iframe-customers-journey/ActivitiesSelectedCard.scss} +1 -2
- package/src/styles/iframe-customers-journey/_index.scss +3 -0
- package/src/styles/iframe-events/Calendar.scss +14 -14
- package/src/styles/iframe-page/PageBody.scss +2 -3
- package/src/styles/notification/Notification.scss +0 -4
- package/src/styles/packages.scss +1 -2
- package/src/styles/resources-blocking/_index.scss +0 -5
- package/src/styles/themes/bookedit/_index.scss +0 -1
- package/src/zone/form/components/AvailableTimesControl.tsx +9 -4
- package/src/zone/form/components/ZoneControl.tsx +0 -2
- package/src/zone/form/components/ZoneRecurrencesControl.tsx +35 -27
- package/src/zone/form/utils/dates.ts +36 -29
- package/dist/iframe/activity-card/ActivityCard.d.ts +0 -17
- package/dist/iframe/activity-card/ActivityCard.d.ts.map +0 -1
- package/dist/iframe/activity-card/ActivityCard.js +0 -1
- package/dist/iframe/activity-card/index.d.ts +0 -2
- package/dist/iframe/activity-card/index.d.ts.map +0 -1
- package/dist/iframe/payment/order-items-table/types/index.js +0 -1
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts +0 -3
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts.map +0 -1
- package/dist/iframe/payment/order-items-table/utils/paymentSummary.js +0 -1
- package/dist/styles/activity-card/_index.scss +0 -2
- package/dist/styles/date-time-button/_index.scss +0 -1
- package/dist/zone/form/components/GameDurationControl.d.ts +0 -7
- package/dist/zone/form/components/GameDurationControl.d.ts.map +0 -1
- package/dist/zone/form/components/GameDurationControl.js +0 -1
- package/src/iframe/activity-card/ActivityCard.tsx +0 -77
- package/src/iframe/activity-card/index.ts +0 -1
- package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +0 -118
- package/src/styles/activity-card/_index.scss +0 -2
- package/src/styles/date-time-button/_index.scss +0 -1
- package/src/zone/form/components/GameDurationControl.tsx +0 -46
- /package/dist/styles/{date-time-button → iframe-customers-journey}/DateTimeButton.scss +0 -0
- /package/src/styles/{date-time-button → iframe-customers-journey}/DateTimeButton.scss +0 -0
|
@@ -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=e(require("react")),n=require("react-i18next"),a=require("react-bootstrap"),o=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),
|
|
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=e(require("react")),n=require("react-i18next"),a=require("react-bootstrap"),o=require("react-hook-form"),u=e(require("@licklist/plugins/dist/services/Form/HookFormService")),i=require("@react-aria/utils"),l=require("../../assets/dashboard/increment.svg.js");exports.FormNumberInput=function(e){var s=e.label,c=e.fieldName,m=e.step,d=void 0===m?1:m,p=e.rules,b=e.disabled,f=i.useId(),v=n.useTranslation("Validation").t,g=o.useFormContext(),E=g.control,F=g.setValue,q=g.formState.errors,C=o.useWatch({name:c}),I=function(e){return e.target.select()};return t.createElement(a.Form.Group,{controlId:f},t.createElement(a.Form.Label,null,s),t.createElement(a.InputGroup,{hasValidation:!0},t.createElement(a.InputGroup.Prepend,{className:"arrow-up-btn",onClick:function(){return F(c,Number(C)+1)}},t.createElement(a.InputGroup.Text,{className:"py-0 px-3"},t.createElement(l.ReactComponent,null))),t.createElement(o.Controller,{control:E,name:c,rules:r.__assign({min:{value:0,message:v("fieldMinNumber",{attribute:s,min:0})}},p),render:function(e){var n=e.field;return t.createElement(a.Form.Control,r.__assign({type:"number",step:d,disabled:b,isInvalid:u.isInvalid(c,q)},n,{onChange:function(e){return n.onChange(Number(e.target.value))},onFocus:I}))}}),t.createElement(a.Form.Control.Feedback,{type:"invalid"},u.getErrors(c,q))))};
|
|
@@ -6,9 +6,8 @@
|
|
|
6
6
|
align-items: center;
|
|
7
7
|
cursor: pointer;
|
|
8
8
|
height: 5rem;
|
|
9
|
-
padding: 0.375rem;
|
|
10
9
|
border: 2px solid transparent;
|
|
11
|
-
border
|
|
10
|
+
border: 2px solid transparent;
|
|
12
11
|
background-color: $snippet-product-set-background-color;
|
|
13
12
|
color: $snippet-product-set-font-color;
|
|
14
13
|
transition: $color-transition;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
|
|
1
2
|
.calendar-wrapper {
|
|
2
3
|
display: flex;
|
|
3
4
|
|
|
@@ -20,7 +21,7 @@
|
|
|
20
21
|
background-color: transparent;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
&:focus
|
|
24
|
+
&:focus{
|
|
24
25
|
box-shadow: none;
|
|
25
26
|
}
|
|
26
27
|
}
|
|
@@ -72,9 +73,10 @@
|
|
|
72
73
|
}
|
|
73
74
|
}
|
|
74
75
|
|
|
76
|
+
|
|
77
|
+
|
|
75
78
|
.calendar-dates-wrapper {
|
|
76
|
-
.calendar-weekdays,
|
|
77
|
-
.calendar-dates {
|
|
79
|
+
.calendar-weekdays, .calendar-dates {
|
|
78
80
|
display: grid;
|
|
79
81
|
grid-template-columns: repeat(7, auto);
|
|
80
82
|
grid-gap: 0.5rem 1rem;
|
|
@@ -96,17 +98,17 @@
|
|
|
96
98
|
margin-top: 0.75rem;
|
|
97
99
|
|
|
98
100
|
.calendar-date {
|
|
101
|
+
height: 2rem;
|
|
99
102
|
display: flex;
|
|
100
|
-
flex-direction: column;
|
|
101
103
|
align-items: center;
|
|
102
104
|
justify-content: center;
|
|
103
|
-
padding: 0
|
|
105
|
+
padding: 0;
|
|
104
106
|
border-radius: 0.25rem;
|
|
105
107
|
background-color: $snippet-calendar-button-background-color;
|
|
106
108
|
color: $snippet-calendar-button-font-color;
|
|
107
109
|
font-size: 0.875rem;
|
|
108
110
|
line-height: 1.3125rem;
|
|
109
|
-
border: 1px solid $snippet-calendar-button-border-color
|
|
111
|
+
border: 1px solid $snippet-calendar-button-border-color;;
|
|
110
112
|
|
|
111
113
|
&.selected-date {
|
|
112
114
|
background-color: $snippet-calendar-active-button-background-color;
|
|
@@ -136,7 +138,7 @@
|
|
|
136
138
|
&:hover {
|
|
137
139
|
border-color: $snippet-calendar-active-button-border-color;
|
|
138
140
|
}
|
|
139
|
-
|
|
141
|
+
|
|
140
142
|
&:focus {
|
|
141
143
|
box-shadow: none;
|
|
142
144
|
}
|
|
@@ -165,11 +167,11 @@
|
|
|
165
167
|
justify-content: center;
|
|
166
168
|
width: 3.75rem;
|
|
167
169
|
height: 2.5rem;
|
|
168
|
-
background-color: #
|
|
170
|
+
background-color: #F2F2F2;
|
|
169
171
|
color: $black;
|
|
170
172
|
font-size: 0.75rem;
|
|
171
173
|
border-radius: 0.25rem;
|
|
172
|
-
|
|
174
|
+
|
|
173
175
|
&.selected-time {
|
|
174
176
|
background-color: $blue;
|
|
175
177
|
color: $white;
|
|
@@ -187,16 +189,14 @@
|
|
|
187
189
|
flex-direction: column;
|
|
188
190
|
align-items: center;
|
|
189
191
|
|
|
190
|
-
.calendar,
|
|
191
|
-
.start-time-wrapper {
|
|
192
|
+
.calendar, .start-time-wrapper {
|
|
192
193
|
min-width: 20.75rem;
|
|
193
194
|
|
|
194
195
|
.calendar-dates-wrapper {
|
|
195
|
-
.calendar-weekdays,
|
|
196
|
-
.calendar-dates {
|
|
196
|
+
.calendar-weekdays, .calendar-dates {
|
|
197
197
|
grid-gap: 0.5rem;
|
|
198
198
|
}
|
|
199
|
-
|
|
199
|
+
|
|
200
200
|
.calendar-dates {
|
|
201
201
|
.calendar-date {
|
|
202
202
|
width: 2.5rem;
|
|
@@ -199,8 +199,7 @@
|
|
|
199
199
|
color: $snippet-elements-button-color;
|
|
200
200
|
border: none;
|
|
201
201
|
background-color: $snippet-elements-button-background-color;
|
|
202
|
-
box-shadow: 0 0 0 $input-btn-focus-width
|
|
203
|
-
$snippet-elements-button-background-color;
|
|
202
|
+
box-shadow: 0 0 0 $input-btn-focus-width $snippet-elements-button-background-color;
|
|
204
203
|
}
|
|
205
204
|
|
|
206
205
|
&:disabled {
|
|
@@ -235,7 +234,7 @@
|
|
|
235
234
|
font-weight: 500;
|
|
236
235
|
border-radius: 0.25rem;
|
|
237
236
|
font-size: 0.875rem;
|
|
238
|
-
|
|
237
|
+
height: 2.25rem;
|
|
239
238
|
|
|
240
239
|
&:focus {
|
|
241
240
|
box-shadow: unset;
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
@import "./static";
|
|
14
14
|
@import "./table";
|
|
15
15
|
@import "./back-button";
|
|
16
|
+
@import "./iframe-customers-journey";
|
|
16
17
|
@import "./custom-fields";
|
|
17
18
|
@import "./file-upload";
|
|
18
19
|
@import "./iframe-events";
|
|
@@ -40,5 +41,3 @@
|
|
|
40
41
|
@import "./striped-static-table/";
|
|
41
42
|
@import "./image-radio-input/";
|
|
42
43
|
@import "./radio-card/";
|
|
43
|
-
@import "./activity-card/";
|
|
44
|
-
@import "./date-time-button/";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvailableTimesControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/AvailableTimesControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,eAAe,EAAW,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;
|
|
1
|
+
{"version":3,"file":"AvailableTimesControl.d.ts","sourceRoot":"","sources":["../../../../src/zone/form/components/AvailableTimesControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAKN,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,eAAe,EAAW,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,MAAM,4DAA4D,CAAC;AAItF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM;QAAE,cAAc,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAC9C,QAAQ,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;CAC/C,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,kBAAkB,GAAG;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvD,eAAO,MAAM,qBAAqB,6GA8FhC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),t=require("react"),a=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,i=require("react-i18next"),l=require("react-bootstrap"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,r=require("tslib"),t=require("react"),a=(e=t)&&"object"==typeof e&&"default"in e?e.default:e,i=require("react-i18next"),l=require("react-bootstrap"),s=require("react-hook-form"),n=require("@react-aria/utils"),u=require("@licklist/plugins/dist/utils/time"),o=require("../utils/dates.js"),c=t.forwardRef((function(e,c){var m,d=e.isLoading,f=e.workHours,v=e.defaultValues,b=void 0===v?[]:v,g=n.useId(),p=i.useTranslation(["Design","Validation"]).t,h=s.useForm({mode:"onChange"}),T=h.register,k=h.formState.errors,E=h.reset,_=h.trigger,q=h.getValues,y=h.setValue,C=h.watch,F=h.setError,V=C("availableTimes")||[],x=t.useMemo((function(){return o.getCheckboxesByWorkHours(f)}),[f]);t.useImperativeHandle(c,(function(){return{trigger:_,getValues:q,setError:F}}));return t.useEffect((function(){b&&E({availableTimes:b})}),[b]),a.createElement(l.Form.Group,{controlId:g},a.createElement(l.Form.Label,null,p("Design:startTimes")),a.createElement("div",{className:"zone-available-times"},x.map((function(e){return a.createElement(l.Form.Check,{key:e,inline:!0,custom:!0,id:e},a.createElement(l.Form.Check.Input,{type:"checkbox",value:e,checked:V.includes(u.calculateTimeWithOffset(e)),onChange:function(){return function(e){var t=u.calculateTimeWithOffset(e);V.includes(t)?y("availableTimes",V.filter((function(e){return e!==t}))):y("availableTimes",r.__spreadArray(r.__spreadArray([],r.__read(V),!1),[t],!1))}(e)},disabled:d}),a.createElement(l.Form.Check.Label,null,e))}))),a.createElement(l.Form.Control,r.__assign({type:"hidden"},T("availableTimes",{required:{value:!0,message:p("Validation:fieldMinNumber",{attribute:p("startTimes"),min:1})}}))),a.createElement("div",{className:"manual-form-error"},null===(m=k.availableTimes)||void 0===m?void 0:m.message))}));exports.AvailableTimesControl=c;
|
|
@@ -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;
|
|
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;AAQtF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,WAAW,8BAGrB,gBAAgB,gBAyBlB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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"),
|
|
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"),c=require("./ZoneImageControl.js");exports.ZoneControl=function(e){var r=e.isLoading,m=e.workHours,u=void 0===m?[]:m;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,isLoading:r}),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(t.Col,{md:6,sm:6},o.createElement(c.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})))))};
|
|
@@ -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;
|
|
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;AAoBtF,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,8BAGhC,0BAA0B,gBAmP5B,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("@licklist/core/dist/Config"),a=require("react-i18next"),o=require("react-bootstrap"),u=require("../../../static/Icon.js"),l=require("react-hook-form"),s=require("@react-aria/utils"),c=require("react-use"),d=require("luxon");require("../../../static/index.js");var m=require("@dnd-kit/core"),
|
|
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("@licklist/core/dist/Config"),a=require("react-i18next"),o=require("react-bootstrap"),u=require("../../../static/Icon.js"),l=require("react-hook-form"),s=require("@react-aria/utils"),c=require("react-use"),d=require("luxon");require("../../../static/index.js");var m=require("@dnd-kit/core"),f=require("@dnd-kit/sortable"),v=require("../../../modals/confirmation/ConfirmModal.js"),g=require("../../../recurring-date-picker-input/RecurringDatePickerInput.js"),T=require("../../../product-set/control/DateAndRecurrenceInput.js"),_=require("@licklist/plugins/dist/utils/time"),p=require("./ZoneRecurrenceControl.js"),E=require("./AvailableTimesControl.js");exports.ZoneRecurrencesControl=function(e){var R,b,q=e.workHours,C=e.isLoading,D=void 0!==C&&C,I=l.useFormContext(),x=I.control,F=I.register,M=I.formState.errors,k=I.getValues,A=I.setValue,y=I.clearErrors,O=l.useFieldArray({name:"zoneRecurrences",control:x,keyName:"_id"}),S=O.fields,h=O.append,N=O.update,z=O.move,L=r.__read(t.useState(!1),2),w=L[0],j=L[1],V=r.__read(t.useState({index:null,values:null}),2),P=V[0],Z=V[1],H=function(){return Z({index:null,values:null})},U=r.__read(t.useState([]),2),W=U[0],B=U[1],G=t.useRef(),K=t.useRef();c.useClickAway(G,(function(e){var r,t,n;v.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)||(j(!1),H())}));var J=s.useId(),Q=a.useTranslation(["Design","Validation"]).t,X=function(){H(),j((function(e){return!e}))};return t.useEffect((function(){S.length&&y("zoneRecurrences")}),[S,y]),n.createElement(o.Form.Group,null,n.createElement(o.Form.Label,null,Q("zoneAvailable")),n.createElement(o.OverlayTrigger,{show:w,overlay:n.createElement(o.Popover,{id:J,className:"rounded"},n.createElement(o.Popover.Content,{className:"shadow-lg rounded",ref:G},n.createElement(g.RecurringDatePickerInput,{defaultValues:P.values,onChange:function(e){return r.__awaiter(void 0,void 0,void 0,(function(){var t,n,a,o,u,l,s;return r.__generator(this,(function(c){switch(c.label){case 0:return[4,null===(u=K.current)||void 0===u?void 0:u.trigger()];case 1:return c.sent()?(t=d.DateTime.fromFormat(e.startTime,i.TIME_FULL_FORMAT),n=d.DateTime.fromFormat(e.endTime,i.TIME_FULL_FORMAT),a=K.current.getValues().availableTimes,a.every((function(e){var r=d.DateTime.fromFormat(_.calculateTimeWithOffset(e,_.DIRECTION_TO_LOCAL),i.TIME_FORMAT);return r.diff(t,"minutes").minutes>=0&&r.diff(n,"minutes").minutes<=0}))?(o=r.__assign({rrule:e.rrule,startDate:e.startDate,endDate:e.endDate,startTime:e.startTime,endTime:e.endTime},K.current.getValues()),(null===(l=P.values)||void 0===l?void 0:l.id)&&(o.id=null===(s=P.values)||void 0===s?void 0:s.id),null!==P.index?N(P.index,o):h(o),j((function(){return!1})),H(),[2]):(K.current.setError("availableTimes",{message:Q("Validation:fieldTimeBetween",{attribute:Q("Design:startTimesSmall"),min:t.toFormat(i.TIME_FORMAT),max:n.toFormat(i.TIME_FORMAT)})}),[2])):[2]}}))}))},onDelete:function(){var e=P.index;j(!1),H(),setTimeout((function(){var r=k().zoneRecurrences;A("zoneRecurrences",(void 0===r?[]:r).filter((function(r,t){return t!==e})))}),100)},setInitialStartDateAfterSelect:!0},n.createElement(E.AvailableTimesControl,{workHours:q,isLoading:D,defaultValues:W,ref:K})))),trigger:"click",placement:"bottom",popperConfig:{modifiers:[T.sameWidthPopperModifier]}},n.createElement("div",{className:"zone-recurrences"},n.createElement(m.DndContext,{onDragEnd:function(e){var r=e.over,t=e.active;if(r.id!==t.id){var n=S.findIndex((function(e){return String(e._id)===t.id})),i=S.findIndex((function(e){return String(e._id)===r.id}));z(n,i)}}},n.createElement(f.SortableContext,{items:null!==(R=null==S?void 0:S.map((function(e){return String(e._id)})))&&void 0!==R?R:[],strategy:f.verticalListSortingStrategy},null==S?void 0:S.map((function(e,r){return n.createElement(p.ZoneRecurrenceControl,{key:e._id,zoneRecurrence:e,onEdit:function(){return function(e,r){H(),setTimeout((function(){Z({index:r,values:e}),B(e.availableTimes||[]),j((function(){return!0}))}),100)}(e,r)}})})))),n.createElement("div",{className:"zone-recurrence-icon-wrapper",role:"button",tabIndex:0,onClick:X,onKeyDown:X},n.createElement(u.default,{type:"plus-circle",height:"1rem",className:"zone-recurrence-icon-add mr-2"}),Q("addDates")),n.createElement(o.Form.Control,r.__assign({type:"hidden"},F("zoneRecurrences",{required:{value:!0,message:Q("Validation:fieldMinNumber",{attribute:Q("dates"),min:1})}}))),n.createElement("div",{className:"manual-form-error"},null===(b=M.zoneRecurrences)||void 0===b?void 0:b.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;
|
|
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;AAKtF,eAAO,MAAM,qBAAqB,cACrB,MAAM,WACR,MAAM,6BAgDhB,CAAC;AAEF,eAAO,MAAM,wBAAwB,eAAgB,QAAQ,EAAE,aA0C9D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),r=require("@licklist/core/dist/
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("tslib"),r=require("@licklist/core/dist/Services/Date"),t="00:00",a="23:59",n=function(t,a,n){void 0===n&&(n=5);for(var i=new Date,u=e.__read(t.split(r.TIME_SEPARATOR),2),o=u[0],s=u[1],_=e.__read(a.split(r.TIME_SEPARATOR),2),l=_[0],d=_[1],c=r.datetime(i.getFullYear(),i.getMonth()+1,i.getDate(),Number(o),Number(s)),g=r.datetime(i.getFullYear(),i.getMonth()+1,i.getDate(),Number(l),Number(d)),p={0:c},f=0;g>=c;)c=new Date(c.getTime()+60*n*1e3),p[f+=1]=c;var v=Object.keys(p).map((function(t){var a=p[t];if(a<g){var n=e.__read(a.toISOString().split("T"),2)[1],i=e.__read(n.split(r.TIME_SEPARATOR),2);return[i[0],i[1]].join(r.TIME_SEPARATOR)}return null})).filter(Boolean);return v};exports.getCheckboxesByWorkHours=function(r){if(!r||!r.length)return n(t,a);var i=r.reduce((function(r,t){var a=t.start,n=t.end;return a&&n?e.__spreadArray(e.__spreadArray([],e.__read(r),!1),[{start:a,end:n}],!1):r}),[]);if(7!==i.length)return n(t,a);var u=i.reduce((function(r,t){var a=t.start,n=t.end;return e.__spreadArray(e.__spreadArray([],e.__read(r),!1),[a,n],!1)}),[]).sort((function(e,r){return e.localeCompare(r)}));return n(u[0]||t,u[u.length-1]||a)},exports.getTimeCheckboxRanges=n;
|
package/package.json
CHANGED
|
@@ -59,7 +59,7 @@ export const DateTimeButton = <T extends DateTime | string>({
|
|
|
59
59
|
/>
|
|
60
60
|
)}
|
|
61
61
|
|
|
62
|
-
{price &&
|
|
62
|
+
{price && <div className="price">{price}</div>}
|
|
63
63
|
|
|
64
64
|
{/* TODO uncomment when adding availability */}
|
|
65
65
|
{/* {info && (
|
|
@@ -12,30 +12,21 @@ export const useImage = (
|
|
|
12
12
|
height: 0,
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
const setImageEventHandler = function setImageEventHandler(
|
|
16
|
-
this: HTMLImageElement
|
|
17
|
-
) {
|
|
18
|
-
imageRef.current = this;
|
|
19
|
-
|
|
20
|
-
setImageAttributes({
|
|
21
|
-
width: this.naturalWidth,
|
|
22
|
-
height: this.naturalHeight,
|
|
23
|
-
});
|
|
24
|
-
};
|
|
25
|
-
|
|
26
15
|
const loadImage = useCallback((imageUrl?: string) => {
|
|
27
16
|
imageRef.current = new window.Image();
|
|
28
17
|
imageRef.current.src = imageUrl;
|
|
29
|
-
imageRef.current.addEventListener("load",
|
|
18
|
+
imageRef.current.addEventListener("load", function () {
|
|
19
|
+
imageRef.current = this;
|
|
20
|
+
|
|
21
|
+
setImageAttributes({
|
|
22
|
+
width: this.naturalWidth,
|
|
23
|
+
height: this.naturalHeight,
|
|
24
|
+
});
|
|
25
|
+
});
|
|
30
26
|
}, []);
|
|
31
27
|
|
|
32
28
|
useEffect(() => {
|
|
33
29
|
loadImage(url);
|
|
34
|
-
|
|
35
|
-
return () => {
|
|
36
|
-
imageRef.current.removeEventListener("load", setImageEventHandler);
|
|
37
|
-
imageRef.current = undefined;
|
|
38
|
-
};
|
|
39
30
|
}, [url, loadImage]);
|
|
40
31
|
|
|
41
32
|
const memoizedImageAttributes = useMemo(() => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { Meta, Story } from "@storybook/react";
|
|
3
|
-
import { ActivityCard, ActivityCardProps
|
|
3
|
+
import { ActivityCard, ActivityCardProps } from "./ActivityCard";
|
|
4
4
|
|
|
5
5
|
export default {
|
|
6
6
|
title: "Iframe/ActivityCard",
|
|
@@ -50,26 +50,3 @@ Selected.args = {
|
|
|
50
50
|
onSelect: () => null,
|
|
51
51
|
isSelected: true,
|
|
52
52
|
};
|
|
53
|
-
|
|
54
|
-
export const ListView: Story<ActivityCardProps> = (props) => {
|
|
55
|
-
return <ActivityCard {...props} />;
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
Default.args = {
|
|
59
|
-
layout: LAYOUT_LIST,
|
|
60
|
-
title: "Clay Pigeons & Axe Thowing",
|
|
61
|
-
duration: "60 mins",
|
|
62
|
-
price: "from £20",
|
|
63
|
-
image: {
|
|
64
|
-
hash: "0b37b130e22aa2d3",
|
|
65
|
-
id: 195,
|
|
66
|
-
imageType: "cover",
|
|
67
|
-
imageableId: 25,
|
|
68
|
-
imageableType: "zone",
|
|
69
|
-
path: "images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
|
|
70
|
-
// eslint-disable-next-line max-len
|
|
71
|
-
url: "https://cdn.lickli.st/doNktZRze1yuz3Uo2OPrLSvXVtUcdUsF/images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
|
|
72
|
-
},
|
|
73
|
-
onSelect: () => null,
|
|
74
|
-
isSelected: false,
|
|
75
|
-
};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import clsx from "clsx";
|
|
3
|
+
import { Image } from "@licklist/core/dist/DataMapper/Media/ImageDataMapper";
|
|
4
|
+
|
|
5
|
+
export interface ActivityCardProps {
|
|
6
|
+
title: ReactNode;
|
|
7
|
+
duration: ReactNode;
|
|
8
|
+
price: ReactNode;
|
|
9
|
+
image?: Image | null;
|
|
10
|
+
onSelect: () => void;
|
|
11
|
+
isSelected: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const ActivityCard = ({
|
|
15
|
+
title,
|
|
16
|
+
duration,
|
|
17
|
+
price,
|
|
18
|
+
image,
|
|
19
|
+
onSelect,
|
|
20
|
+
isSelected,
|
|
21
|
+
}: ActivityCardProps) => {
|
|
22
|
+
return (
|
|
23
|
+
<button
|
|
24
|
+
type="button"
|
|
25
|
+
className={clsx("activity-card", isSelected && "active")}
|
|
26
|
+
onClick={onSelect}
|
|
27
|
+
>
|
|
28
|
+
{image && <img className="activity-card-image" alt="" src={image.url} />}
|
|
29
|
+
<div className={clsx("d-flex", "flex-column", !image && "no-image")}>
|
|
30
|
+
<div className="activity-card-title">{title}</div>
|
|
31
|
+
|
|
32
|
+
{duration && <div>{duration}</div>}
|
|
33
|
+
|
|
34
|
+
{price && <div>{price}</div>}
|
|
35
|
+
</div>
|
|
36
|
+
</button>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Meta, Story } from "@storybook/react";
|
|
3
|
+
import { ListActivityCardProps, ListActivityCard } from "./ListActivityCard";
|
|
4
|
+
|
|
5
|
+
export default {
|
|
6
|
+
title: "Iframe/ListActivityCard",
|
|
7
|
+
component: ListActivityCard,
|
|
8
|
+
} as Meta;
|
|
9
|
+
|
|
10
|
+
export const Default: Story<ListActivityCardProps> = (props) => {
|
|
11
|
+
return <ListActivityCard {...props} />;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
Default.args = {
|
|
15
|
+
title: "Clay Pigeons & Axe Thowing",
|
|
16
|
+
duration: "60 mins",
|
|
17
|
+
price: "from £20",
|
|
18
|
+
image: {
|
|
19
|
+
hash: "0b37b130e22aa2d3",
|
|
20
|
+
id: 195,
|
|
21
|
+
imageType: "cover",
|
|
22
|
+
imageableId: 25,
|
|
23
|
+
imageableType: "zone",
|
|
24
|
+
path: "images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
|
|
25
|
+
// eslint-disable-next-line max-len
|
|
26
|
+
url: "https://cdn.lickli.st/doNktZRze1yuz3Uo2OPrLSvXVtUcdUsF/images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
|
|
27
|
+
},
|
|
28
|
+
onSelect: () => null,
|
|
29
|
+
isSelected: false,
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export const Selected: Story<ListActivityCardProps> = (props) => {
|
|
33
|
+
return <ListActivityCard {...props} />;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
Selected.args = {
|
|
37
|
+
title: "Clay Pigeons & Axe Thowing",
|
|
38
|
+
duration: "60 mins",
|
|
39
|
+
price: "from £20",
|
|
40
|
+
image: {
|
|
41
|
+
hash: "0b37b130e22aa2d3",
|
|
42
|
+
id: 195,
|
|
43
|
+
imageType: "cover",
|
|
44
|
+
imageableId: 25,
|
|
45
|
+
imageableType: "zone",
|
|
46
|
+
path: "images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
|
|
47
|
+
// eslint-disable-next-line max-len
|
|
48
|
+
url: "https://cdn.lickli.st/doNktZRze1yuz3Uo2OPrLSvXVtUcdUsF/images/original/000/000/000/000/195-0b37b130e22aa2d3.jpeg",
|
|
49
|
+
},
|
|
50
|
+
onSelect: () => null,
|
|
51
|
+
isSelected: true,
|
|
52
|
+
};
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import clsx from "clsx";
|
|
3
|
+
import { Image } from "@licklist/core/dist/DataMapper/Media/ImageDataMapper";
|
|
4
|
+
|
|
5
|
+
export interface ListActivityCardProps {
|
|
6
|
+
title: string;
|
|
7
|
+
duration: string;
|
|
8
|
+
price: string;
|
|
9
|
+
image?: Image | null;
|
|
10
|
+
onSelect: () => void;
|
|
11
|
+
isSelected: boolean;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const ListActivityCard = ({
|
|
15
|
+
title,
|
|
16
|
+
duration,
|
|
17
|
+
price,
|
|
18
|
+
image,
|
|
19
|
+
onSelect,
|
|
20
|
+
isSelected,
|
|
21
|
+
}: ListActivityCardProps) => {
|
|
22
|
+
return (
|
|
23
|
+
<div role="button" onClick={onSelect} onKeyPress={onSelect} tabIndex={0}>
|
|
24
|
+
<div
|
|
25
|
+
className={clsx("list-activity-card", {
|
|
26
|
+
active: isSelected,
|
|
27
|
+
})}
|
|
28
|
+
>
|
|
29
|
+
<div className="description">
|
|
30
|
+
<div className="title">{title}</div>
|
|
31
|
+
{duration && (
|
|
32
|
+
<div>
|
|
33
|
+
<p>{duration}</p>
|
|
34
|
+
</div>
|
|
35
|
+
)}
|
|
36
|
+
|
|
37
|
+
{price && <div>{price}</div>}
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
{image && (
|
|
41
|
+
<div className="image-container">
|
|
42
|
+
<img className="image" src={image.url} alt="" />
|
|
43
|
+
</div>
|
|
44
|
+
)}
|
|
45
|
+
</div>
|
|
46
|
+
<hr className="list-activity-card-hr" />
|
|
47
|
+
</div>
|
|
48
|
+
);
|
|
49
|
+
};
|
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DateTime } from "luxon";
|
|
3
3
|
import { Meta, Story } from "@storybook/react";
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
} from "@licklist/plugins/dist/context/event/EventCalendarContext";
|
|
8
|
-
import { EventCalendar, EventCalendarProps } from "./EventCalendar";
|
|
4
|
+
import { boolean } from "@storybook/addon-knobs";
|
|
5
|
+
import { EventCalendarProvider } from "@licklist/plugins/dist/context/event/EventCalendarContext";
|
|
6
|
+
import { EventCalendar } from "./EventCalendar";
|
|
9
7
|
|
|
10
8
|
export default {
|
|
11
9
|
title: "Iframe/Event/Calendar",
|
|
12
10
|
component: EventCalendar,
|
|
13
11
|
} as Meta;
|
|
14
12
|
|
|
15
|
-
export const Default: Story<
|
|
13
|
+
export const Default: Story<any> = (args) => {
|
|
14
|
+
const now = DateTime.now().set({
|
|
15
|
+
hour: 0,
|
|
16
|
+
second: 0,
|
|
17
|
+
millisecond: 0,
|
|
18
|
+
minute: 0,
|
|
19
|
+
});
|
|
20
|
+
const disabledDates = [now.minus({ day: 2 }), now, now.plus({ day: 2 })];
|
|
21
|
+
|
|
22
|
+
const isLoading = boolean("isLoading", false);
|
|
23
|
+
|
|
16
24
|
return (
|
|
17
|
-
<EventCalendarProvider
|
|
25
|
+
<EventCalendarProvider>
|
|
18
26
|
<div style={{ backgroundColor: "white" }}>
|
|
19
|
-
<EventCalendar
|
|
27
|
+
<EventCalendar
|
|
28
|
+
{...args}
|
|
29
|
+
disabledDates={disabledDates}
|
|
30
|
+
isLoading={isLoading}
|
|
31
|
+
/>
|
|
20
32
|
</div>
|
|
21
33
|
</EventCalendarProvider>
|
|
22
34
|
);
|
|
23
35
|
};
|
|
24
36
|
|
|
25
|
-
|
|
26
|
-
hour: 0,
|
|
27
|
-
second: 0,
|
|
28
|
-
millisecond: 0,
|
|
29
|
-
minute: 0,
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
Default.args = {
|
|
33
|
-
disabledDates: [now.minus({ day: 2 }), now, now.plus({ day: 2 })],
|
|
34
|
-
isLoading: false,
|
|
35
|
-
fromPrice: "from £10",
|
|
36
|
-
};
|
|
37
|
+
Default.args = {};
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from "react";
|
|
2
2
|
import { CalendarButtons } from "./components/CalendarButtons";
|
|
3
3
|
import { CalendarDates } from "./components/CalendarDates";
|
|
4
4
|
import { CalendarBaseProps } from "./types";
|
|
5
5
|
|
|
6
|
-
export type EventCalendarProps = CalendarBaseProps
|
|
7
|
-
fromPrice?: string | ReactElement | null;
|
|
8
|
-
};
|
|
6
|
+
export type EventCalendarProps = CalendarBaseProps;
|
|
9
7
|
|
|
10
8
|
export const EventCalendar = ({
|
|
11
9
|
disabledDates = [],
|
|
12
10
|
isLoading = false,
|
|
13
|
-
fromPrice,
|
|
14
11
|
}: EventCalendarProps) => {
|
|
15
12
|
return (
|
|
16
13
|
<div className="calendar-wrapper">
|
|
17
14
|
<div className="calendar">
|
|
18
15
|
<CalendarButtons disabledDates={disabledDates} isLoading={isLoading} />
|
|
19
|
-
<CalendarDates
|
|
20
|
-
disabledDates={disabledDates}
|
|
21
|
-
isLoading={isLoading}
|
|
22
|
-
fromPrice={fromPrice}
|
|
23
|
-
/>
|
|
16
|
+
<CalendarDates disabledDates={disabledDates} isLoading={isLoading} />
|
|
24
17
|
</div>
|
|
25
18
|
</div>
|
|
26
19
|
);
|