@licklist/design 0.50.1 → 0.51.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.
- package/dist/calendar/Calendar.d.ts +1 -0
- package/dist/calendar/Calendar.d.ts.map +1 -1
- package/dist/calendar/components/CalendarDates/CalendarDates.d.ts +1 -1
- package/dist/calendar/components/CalendarDates/CalendarDates.d.ts.map +1 -1
- package/dist/calendar/components/CalendarDates/CalendarDates.js +1 -1
- package/dist/date-time-button/DateTimeButton.d.ts +3 -2
- package/dist/date-time-button/DateTimeButton.d.ts.map +1 -1
- package/dist/date-time-button/DateTimeButton.js +1 -1
- package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.d.ts +2 -1
- package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.d.ts.map +1 -1
- package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.js +1 -1
- package/dist/table/TableHelperComponent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/calendar/Calendar.tsx +1 -0
- package/src/calendar/components/CalendarDates/CalendarDates.tsx +2 -0
- package/src/date-time-button/DateTimeButton.tsx +16 -3
- package/src/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.tsx +16 -3
- package/src/table/TableHelperComponent.tsx +11 -13
|
@@ -14,6 +14,7 @@ export type CalendarProps = {
|
|
|
14
14
|
initialDate?: DateTime;
|
|
15
15
|
getAvailability?: (date: DateTime) => ZoneResourcesAvailability | null;
|
|
16
16
|
includeAvailability?: boolean;
|
|
17
|
+
shouldCalculateResources?: boolean;
|
|
17
18
|
};
|
|
18
19
|
export declare const Calendar: ({ disabledDates, initialDate, ...props }: CalendarProps) => JSX.Element;
|
|
19
20
|
//# sourceMappingURL=Calendar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAC;AAIrH,eAAO,MAAM,eAAe,UAK1B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,yBAAyB,GAAG,IAAI,CAAC;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Calendar.d.ts","sourceRoot":"","sources":["../../src/calendar/Calendar.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAC;AAIrH,eAAO,MAAM,eAAe,UAK1B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,QAAQ,CAAC;IACtB,cAAc,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,aAAa,EAAE,QAAQ,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC3B,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,yBAAyB,GAAG,IAAI,CAAC;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,QAAQ,6CAIlB,aAAa,gBAaf,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { CalendarProps } from "../../Calendar";
|
|
3
3
|
export type CalendarDatesProps = Omit<CalendarProps, "currentDate" | "setCurrentDate" | "initialDate">;
|
|
4
|
-
export declare const CalendarDates: ({ disabledDates, isLoading, calendarDates, selectedDate, setSelectedDate, fromPrice, getAvailability, includeAvailability, }: CalendarDatesProps) => JSX.Element;
|
|
4
|
+
export declare const CalendarDates: ({ disabledDates, isLoading, calendarDates, selectedDate, setSelectedDate, fromPrice, getAvailability, includeAvailability, shouldCalculateResources, }: CalendarDatesProps) => JSX.Element;
|
|
5
5
|
//# sourceMappingURL=CalendarDates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarDates.d.ts","sourceRoot":"","sources":["../../../../src/calendar/components/CalendarDates/CalendarDates.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,aAAa,EACb,aAAa,GAAG,gBAAgB,GAAG,aAAa,CACjD,CAAC;AAEF,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"CalendarDates.d.ts","sourceRoot":"","sources":["../../../../src/calendar/components/CalendarDates/CalendarDates.tsx"],"names":[],"mappings":";AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,aAAa,EACb,aAAa,GAAG,gBAAgB,GAAG,aAAa,CACjD,CAAC;AAEF,eAAO,MAAM,aAAa,2JAUvB,kBAAkB,gBAgDpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,a=require("tslib"),r=require("react"),t=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e,a=require("tslib"),r=require("react"),t=(e=r)&&"object"==typeof e&&"default"in e?e.default:e,l=require("../../utils/index.js"),i=require("../../../date-time-button/DateTimeButton.js"),d=require("../CalendarWeekdays/CalendarWeekdays.js");exports.CalendarDates=function(e){var s=e.disabledDates,n=void 0===s?[]:s,u=e.isLoading,o=void 0!==u&&u,c=e.calendarDates,v=e.selectedDate,m=e.setSelectedDate,f=e.fromPrice,y=e.getAvailability,p=e.includeAvailability,D=e.shouldCalculateResources,_=r.useMemo((function(){var e,r,t=null!==(r=null===(e=c[0])||void 0===e?void 0:e.weekday)&&void 0!==r?r:0;if(1===t)return c;for(var l=[];t>1;)l.push(null),t-=1;return a.__spreadArray(a.__spreadArray([],a.__read(l),!1),a.__read(c),!1)}),[c]);return t.createElement("div",{className:"calendar-dates-wrapper"},t.createElement(d.CalendarWeekdays,null),t.createElement("div",{className:"calendar-dates"},_.map((function(e){if(null===e)return t.createElement("div",null);var a=o||l.isSelectedDateDisabled(e,n);return t.createElement(i.DateTimeButton,{key:+e,isDisabled:a,isSelected:v?e.hasSame(v,"day"):void 0,date:e,onSelect:function(){return m(e)},price:f,resources:null==y?void 0:y(e),showResources:p,variant:i.Variant.month,shouldCalculateResources:D})}))))};
|
|
@@ -13,9 +13,10 @@ export type DateTimeButtonProps = {
|
|
|
13
13
|
isSoldOut?: boolean;
|
|
14
14
|
onSelect: (date: DateTime) => void;
|
|
15
15
|
price?: string | number | ReactElement | null;
|
|
16
|
-
resources
|
|
16
|
+
resources: ZoneResourcesAvailability | null | undefined;
|
|
17
17
|
showResources?: boolean;
|
|
18
|
+
shouldCalculateResources?: boolean;
|
|
18
19
|
variant: Variant;
|
|
19
20
|
};
|
|
20
|
-
export declare const DateTimeButton: ({ date, isDisabled: _isDisabled, isSelected, isSoldOut: _isSoldOut, onSelect, price, resources, showResources, variant, }: DateTimeButtonProps) => JSX.Element;
|
|
21
|
+
export declare const DateTimeButton: ({ date, isDisabled: _isDisabled, isSelected, isSoldOut: _isSoldOut, onSelect, price, resources, showResources, shouldCalculateResources, variant, }: DateTimeButtonProps) => JSX.Element;
|
|
21
22
|
//# sourceMappingURL=DateTimeButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeButton.d.ts","sourceRoot":"","sources":["../../src/date-time-button/DateTimeButton.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAC;
|
|
1
|
+
{"version":3,"file":"DateTimeButton.d.ts","sourceRoot":"","sources":["../../src/date-time-button/DateTimeButton.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0EAA0E,CAAC;AAKrH,oBAAY,OAAO;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,IAAI,CAAC;IAC9C,SAAS,EAAE,yBAAyB,GAAG,IAAI,GAAG,SAAS,CAAC;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,cAAc,wJAWxB,mBAAmB,gBAuDrB,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 t,
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t,a=e(require("react")),r=e(require("clsx")),i=require("luxon"),o=require("lodash"),s=require("../availability-indicator/AvailabilityIndicator.js"),n=require("./DateContent.js");(t=exports.Variant||(exports.Variant={})).week="week",t.month="month",t.time="time";var l=function(e){return e.toUTC()<=i.DateTime.now().toUTC()};exports.DateTimeButton=function(e){var t=e.date,i=e.isDisabled,u=e.isSelected,c=e.isSoldOut,d=e.onSelect,m=e.price,b=e.resources,v=e.showResources,p=e.shouldCalculateResources,x=void 0===p||p,f=e.variant,h=void 0===f?exports.Variant.week:f,y=c||x&&b&&b.bookedResources>=b.totalResources,k=h===exports.Variant.time,q=k&&l(t),w=x&&(!b||!o.has(b,"bookedResources")||!o.has(b,"totalResources")),C=i||y||q||w;return a.createElement("button",{type:"button",onClick:function(){return d(t)},disabled:C,className:r("date-time-button",C&&"disabled",u&&"selected",k&&"time-button",k&&"only-time-container",!k&&"today",h===exports.Variant.month&&"calendar-view")},a.createElement(n.DateContent,{date:t,isDisabled:C,isSelected:u,variant:h}),m&&!C&&a.createElement("div",{className:"price"},m),v&&b&&a.createElement(s.AvailabilityIndicator,{resources:b,isUnavailable:i||q,isSoldOut:y}))};
|
|
@@ -11,8 +11,9 @@ type FooterProps = Partial<{
|
|
|
11
11
|
disabled?: boolean;
|
|
12
12
|
buttonLabel?: ReactNode;
|
|
13
13
|
showButton?: boolean;
|
|
14
|
+
isLoading: boolean;
|
|
14
15
|
} & (ButtonPropsWithoutOnClick | ButtonPropsWithOnClick)>;
|
|
15
16
|
export type BookingSummaryFooterProps = PropsWithChildren<FooterProps>;
|
|
16
|
-
export declare const BookingSummaryFooter: ({ disabled, onClick, buttonLabel, form, children, showButton, }: BookingSummaryFooterProps) => JSX.Element;
|
|
17
|
+
export declare const BookingSummaryFooter: ({ disabled: _disabled, onClick, buttonLabel, form, children, showButton, isLoading, }: BookingSummaryFooterProps) => JSX.Element;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=BookingSummaryFooter.d.ts.map
|
package/dist/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BookingSummaryFooter.d.ts","sourceRoot":"","sources":["../../../../../src/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"BookingSummaryFooter.d.ts","sourceRoot":"","sources":["../../../../../src/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAM5D,KAAK,yBAAyB,GAAG;IAC/B,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,KAAK,WAAW,GAAG,OAAO,CACxB;IACE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,CAAC,yBAAyB,GAAG,sBAAsB,CAAC,CACzD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAEvE,eAAO,MAAM,oBAAoB,0FAQ9B,yBAAyB,gBAyB3B,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 t=require("tslib"),r=e(require("react")),
|
|
1
|
+
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("tslib"),r=e(require("react")),n=require("react-i18next"),i=e(require("react-bootstrap/Button")),o=require("react-bootstrap"),a=require("../../constants.js");exports.BookingSummaryFooter=function(e){var s=e.disabled,u=void 0!==s&&s,l=e.onClick,c=e.buttonLabel,d=e.form,m=void 0===d?a.STEP_FORM_ID:d,f=e.children,b=e.showButton,p=void 0===b||b,v=e.isLoading,q=void 0!==v&&v,x=n.useTranslation("Design").t,_=l?{onClick:l}:{type:"submit",form:m},g=u||q;return r.createElement("div",{className:"d-flex flex-column"},f,p&&r.createElement(i,t.__assign({className:"m-0 d-flex align-items-center justify-content-center mt-3",disabled:g},_),q?r.createElement(o.Spinner,{animation:"border",size:"sm",role:"status"}):null!=c?c:x("continue")))};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHelperComponent.d.ts","sourceRoot":"","sources":["../../src/table/TableHelperComponent.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,cAAc,EAAuB,MAAM,OAAO,CAAC;AAOnE,OAAO,qBAAqB,MAAM,mEAAmE,CAAC;AACtG,OAAO,YAAY,MAAM,0DAA0D,CAAC;AACpF,OAAO,WAAW,MAAM,yDAAyD,CAAC;AAQlF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACtE;AAUD;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"TableHelperComponent.d.ts","sourceRoot":"","sources":["../../src/table/TableHelperComponent.tsx"],"names":[],"mappings":"AACA,OAAc,EAAE,cAAc,EAAuB,MAAM,OAAO,CAAC;AAOnE,OAAO,qBAAqB,MAAM,mEAAmE,CAAC;AACtG,OAAO,YAAY,MAAM,0DAA0D,CAAC;AACpF,OAAO,WAAW,MAAM,yDAAyD,CAAC;AAQlF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,YAAY,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,eAAe,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACtE;AAUD;;;;;;GAMG;AACH,iBAAS,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,eA4S7D;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -19,6 +19,7 @@ export const CalendarDates = ({
|
|
|
19
19
|
fromPrice,
|
|
20
20
|
getAvailability,
|
|
21
21
|
includeAvailability,
|
|
22
|
+
shouldCalculateResources,
|
|
22
23
|
}: CalendarDatesProps) => {
|
|
23
24
|
const fillCalendarDates = useMemo(() => {
|
|
24
25
|
let firstDayOfWeek = calendarDates[0]?.weekday ?? 0;
|
|
@@ -60,6 +61,7 @@ export const CalendarDates = ({
|
|
|
60
61
|
resources={getAvailability?.(date)}
|
|
61
62
|
showResources={includeAvailability}
|
|
62
63
|
variant={Variant.month}
|
|
64
|
+
shouldCalculateResources={shouldCalculateResources}
|
|
63
65
|
/>
|
|
64
66
|
);
|
|
65
67
|
})}
|
|
@@ -2,6 +2,7 @@ import React, { ReactElement } from "react";
|
|
|
2
2
|
import clsx from "clsx";
|
|
3
3
|
import { DateTime } from "luxon";
|
|
4
4
|
import { ZoneResourcesAvailability } from "@licklist/core/dist/DataMapper/Order/ZoneResourcesAvailabilityDataMapper";
|
|
5
|
+
import { has } from "lodash";
|
|
5
6
|
import { AvailabilityIndicator } from "../availability-indicator";
|
|
6
7
|
import { DateContent } from "./DateContent";
|
|
7
8
|
|
|
@@ -18,8 +19,9 @@ export type DateTimeButtonProps = {
|
|
|
18
19
|
isSoldOut?: boolean;
|
|
19
20
|
onSelect: (date: DateTime) => void;
|
|
20
21
|
price?: string | number | ReactElement | null;
|
|
21
|
-
resources
|
|
22
|
+
resources: ZoneResourcesAvailability | null | undefined;
|
|
22
23
|
showResources?: boolean;
|
|
24
|
+
shouldCalculateResources?: boolean;
|
|
23
25
|
variant: Variant;
|
|
24
26
|
};
|
|
25
27
|
|
|
@@ -32,17 +34,28 @@ export const DateTimeButton = ({
|
|
|
32
34
|
price,
|
|
33
35
|
resources,
|
|
34
36
|
showResources,
|
|
37
|
+
shouldCalculateResources = true,
|
|
35
38
|
variant = Variant.week,
|
|
36
39
|
}: DateTimeButtonProps) => {
|
|
37
40
|
const isSoldOut =
|
|
38
41
|
_isSoldOut ||
|
|
39
|
-
|
|
42
|
+
// only consider resources if shouldCalculateResources is true
|
|
43
|
+
(shouldCalculateResources &&
|
|
44
|
+
resources &&
|
|
45
|
+
resources.bookedResources >= resources.totalResources);
|
|
40
46
|
|
|
41
47
|
const isTimeVariant = variant === Variant.time;
|
|
42
48
|
|
|
43
49
|
const isTimeInPast = isTimeVariant && isDateInPast(date);
|
|
44
50
|
|
|
45
|
-
const
|
|
51
|
+
const noResources =
|
|
52
|
+
shouldCalculateResources &&
|
|
53
|
+
// only consider resources if shouldCalculateResources is true
|
|
54
|
+
(!resources ||
|
|
55
|
+
!has(resources, "bookedResources") ||
|
|
56
|
+
!has(resources, "totalResources"));
|
|
57
|
+
|
|
58
|
+
const isDisabled = _isDisabled || isSoldOut || isTimeInPast || noResources;
|
|
46
59
|
|
|
47
60
|
return (
|
|
48
61
|
<button
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { ReactNode, PropsWithChildren } from "react";
|
|
2
2
|
import { useTranslation } from "react-i18next";
|
|
3
3
|
import Button from "react-bootstrap/Button";
|
|
4
|
+
import { Spinner } from "react-bootstrap";
|
|
4
5
|
import { STEP_FORM_ID } from "../../constants";
|
|
5
6
|
|
|
6
7
|
type ButtonPropsWithoutOnClick = {
|
|
@@ -18,29 +19,41 @@ type FooterProps = Partial<
|
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
buttonLabel?: ReactNode;
|
|
20
21
|
showButton?: boolean;
|
|
22
|
+
isLoading: boolean;
|
|
21
23
|
} & (ButtonPropsWithoutOnClick | ButtonPropsWithOnClick)
|
|
22
24
|
>;
|
|
23
25
|
|
|
24
26
|
export type BookingSummaryFooterProps = PropsWithChildren<FooterProps>;
|
|
25
27
|
|
|
26
28
|
export const BookingSummaryFooter = ({
|
|
27
|
-
disabled = false,
|
|
29
|
+
disabled: _disabled = false,
|
|
28
30
|
onClick,
|
|
29
31
|
buttonLabel,
|
|
30
32
|
form = STEP_FORM_ID,
|
|
31
33
|
children,
|
|
32
34
|
showButton = true,
|
|
35
|
+
isLoading = false,
|
|
33
36
|
}: BookingSummaryFooterProps) => {
|
|
34
37
|
const { t } = useTranslation("Design");
|
|
35
38
|
|
|
36
39
|
const buttonProps = onClick ? { onClick } : { type: "submit", form };
|
|
37
40
|
|
|
41
|
+
const disabled = _disabled || isLoading;
|
|
42
|
+
|
|
38
43
|
return (
|
|
39
44
|
<div className="d-flex flex-column">
|
|
40
45
|
{children}
|
|
41
46
|
{showButton && (
|
|
42
|
-
<Button
|
|
43
|
-
|
|
47
|
+
<Button
|
|
48
|
+
className="m-0 d-flex align-items-center justify-content-center mt-3"
|
|
49
|
+
disabled={disabled}
|
|
50
|
+
{...buttonProps}
|
|
51
|
+
>
|
|
52
|
+
{isLoading ? (
|
|
53
|
+
<Spinner animation="border" size="sm" role="status" />
|
|
54
|
+
) : (
|
|
55
|
+
buttonLabel ?? t("continue")
|
|
56
|
+
)}
|
|
44
57
|
</Button>
|
|
45
58
|
)}
|
|
46
59
|
</div>
|
|
@@ -173,20 +173,18 @@ function TableHelperComponent(props: TableHelperComponentProps) {
|
|
|
173
173
|
};
|
|
174
174
|
});
|
|
175
175
|
}
|
|
176
|
+
} else if (filteredOrdersOptions) {
|
|
177
|
+
filteredOrdersOptions((prevOptions) => ({
|
|
178
|
+
...prevOptions,
|
|
179
|
+
sortKey: key,
|
|
180
|
+
sortDirection: nextDirection,
|
|
181
|
+
}));
|
|
176
182
|
} else {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
}));
|
|
183
|
-
} else {
|
|
184
|
-
setOptions((prevOptions) => ({
|
|
185
|
-
...prevOptions,
|
|
186
|
-
sortKey: key,
|
|
187
|
-
sortDirection: nextDirection,
|
|
188
|
-
}));
|
|
189
|
-
}
|
|
183
|
+
setOptions((prevOptions) => ({
|
|
184
|
+
...prevOptions,
|
|
185
|
+
sortKey: key,
|
|
186
|
+
sortDirection: nextDirection,
|
|
187
|
+
}));
|
|
190
188
|
}
|
|
191
189
|
};
|
|
192
190
|
|