@hanzo/booker 0.1.0
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/README.md +78 -0
- package/dist/cjs/Booker.cjs +153 -0
- package/dist/cjs/Booker.native.js +158 -0
- package/dist/cjs/Booker.native.js.map +1 -0
- package/dist/cjs/BookingForm.cjs +197 -0
- package/dist/cjs/BookingForm.native.js +203 -0
- package/dist/cjs/BookingForm.native.js.map +1 -0
- package/dist/cjs/CalendarEmbed.cjs +121 -0
- package/dist/cjs/CalendarEmbed.native.js +125 -0
- package/dist/cjs/CalendarEmbed.native.js.map +1 -0
- package/dist/cjs/Confirmation.cjs +177 -0
- package/dist/cjs/Confirmation.native.js +185 -0
- package/dist/cjs/Confirmation.native.js.map +1 -0
- package/dist/cjs/EventHeader.cjs +112 -0
- package/dist/cjs/EventHeader.native.js +118 -0
- package/dist/cjs/EventHeader.native.js.map +1 -0
- package/dist/cjs/MonthCalendar.cjs +177 -0
- package/dist/cjs/MonthCalendar.native.js +191 -0
- package/dist/cjs/MonthCalendar.native.js.map +1 -0
- package/dist/cjs/TimeSlots.cjs +119 -0
- package/dist/cjs/TimeSlots.native.js +126 -0
- package/dist/cjs/TimeSlots.native.js.map +1 -0
- package/dist/cjs/client.cjs +136 -0
- package/dist/cjs/client.native.js +267 -0
- package/dist/cjs/client.native.js.map +1 -0
- package/dist/cjs/hooks.cjs +193 -0
- package/dist/cjs/hooks.native.js +221 -0
- package/dist/cjs/hooks.native.js.map +1 -0
- package/dist/cjs/index.cjs +71 -0
- package/dist/cjs/index.native.js +74 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/time.cjs +145 -0
- package/dist/cjs/time.native.js +150 -0
- package/dist/cjs/time.native.js.map +1 -0
- package/dist/cjs/useBooker.cjs +151 -0
- package/dist/cjs/useBooker.native.js +173 -0
- package/dist/cjs/useBooker.native.js.map +1 -0
- package/dist/esm/Booker.mjs +128 -0
- package/dist/esm/Booker.mjs.map +1 -0
- package/dist/esm/Booker.native.js +130 -0
- package/dist/esm/Booker.native.js.map +1 -0
- package/dist/esm/BookingForm.mjs +172 -0
- package/dist/esm/BookingForm.mjs.map +1 -0
- package/dist/esm/BookingForm.native.js +175 -0
- package/dist/esm/BookingForm.native.js.map +1 -0
- package/dist/esm/CalendarEmbed.mjs +96 -0
- package/dist/esm/CalendarEmbed.mjs.map +1 -0
- package/dist/esm/CalendarEmbed.native.js +97 -0
- package/dist/esm/CalendarEmbed.native.js.map +1 -0
- package/dist/esm/Confirmation.mjs +152 -0
- package/dist/esm/Confirmation.mjs.map +1 -0
- package/dist/esm/Confirmation.native.js +157 -0
- package/dist/esm/Confirmation.native.js.map +1 -0
- package/dist/esm/EventHeader.mjs +87 -0
- package/dist/esm/EventHeader.mjs.map +1 -0
- package/dist/esm/EventHeader.native.js +90 -0
- package/dist/esm/EventHeader.native.js.map +1 -0
- package/dist/esm/MonthCalendar.mjs +152 -0
- package/dist/esm/MonthCalendar.mjs.map +1 -0
- package/dist/esm/MonthCalendar.native.js +163 -0
- package/dist/esm/MonthCalendar.native.js.map +1 -0
- package/dist/esm/TimeSlots.mjs +94 -0
- package/dist/esm/TimeSlots.mjs.map +1 -0
- package/dist/esm/TimeSlots.native.js +98 -0
- package/dist/esm/TimeSlots.native.js.map +1 -0
- package/dist/esm/client.mjs +104 -0
- package/dist/esm/client.mjs.map +1 -0
- package/dist/esm/client.native.js +232 -0
- package/dist/esm/client.native.js.map +1 -0
- package/dist/esm/hooks.mjs +165 -0
- package/dist/esm/hooks.mjs.map +1 -0
- package/dist/esm/hooks.native.js +190 -0
- package/dist/esm/hooks.native.js.map +1 -0
- package/dist/esm/index.js +13 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +13 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +13 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/time.mjs +107 -0
- package/dist/esm/time.mjs.map +1 -0
- package/dist/esm/time.native.js +109 -0
- package/dist/esm/time.native.js.map +1 -0
- package/dist/esm/useBooker.mjs +126 -0
- package/dist/esm/useBooker.mjs.map +1 -0
- package/dist/esm/useBooker.native.js +145 -0
- package/dist/esm/useBooker.native.js.map +1 -0
- package/package.json +61 -0
- package/src/Booker.tsx +152 -0
- package/src/BookingForm.tsx +180 -0
- package/src/CalendarEmbed.tsx +111 -0
- package/src/Confirmation.tsx +145 -0
- package/src/EventHeader.tsx +85 -0
- package/src/MonthCalendar.tsx +179 -0
- package/src/TimeSlots.tsx +102 -0
- package/src/client.ts +218 -0
- package/src/hooks.ts +180 -0
- package/src/index.ts +72 -0
- package/src/time.ts +131 -0
- package/src/useBooker.ts +187 -0
- package/types/Booker.d.ts +16 -0
- package/types/Booker.d.ts.map +1 -0
- package/types/BookingForm.d.ts +13 -0
- package/types/BookingForm.d.ts.map +1 -0
- package/types/CalendarEmbed.d.ts +15 -0
- package/types/CalendarEmbed.d.ts.map +1 -0
- package/types/Confirmation.d.ts +12 -0
- package/types/Confirmation.d.ts.map +1 -0
- package/types/EventHeader.d.ts +10 -0
- package/types/EventHeader.d.ts.map +1 -0
- package/types/MonthCalendar.d.ts +14 -0
- package/types/MonthCalendar.d.ts.map +1 -0
- package/types/TimeSlots.d.ts +15 -0
- package/types/TimeSlots.d.ts.map +1 -0
- package/types/client.d.ts +77 -0
- package/types/client.d.ts.map +1 -0
- package/types/hooks.d.ts +43 -0
- package/types/hooks.d.ts.map +1 -0
- package/types/index.d.ts +12 -0
- package/types/index.d.ts.map +1 -0
- package/types/time.d.ts +38 -0
- package/types/time.d.ts.map +1 -0
- package/types/useBooker.d.ts +41 -0
- package/types/useBooker.d.ts.map +1 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var index_exports = {};
|
|
24
|
+
__export(index_exports, {
|
|
25
|
+
Booker: () => import_Booker.Booker,
|
|
26
|
+
BookingForm: () => import_BookingForm.BookingForm,
|
|
27
|
+
CAL_API_VERSION: () => import_client.CAL_API_VERSION,
|
|
28
|
+
CalendarEmbed: () => import_CalendarEmbed.CalendarEmbed,
|
|
29
|
+
CalendarError: () => import_client.CalendarError,
|
|
30
|
+
Confirmation: () => import_Confirmation.Confirmation,
|
|
31
|
+
DEFAULT_API_URL: () => import_client.DEFAULT_API_URL,
|
|
32
|
+
EventHeader: () => import_EventHeader.EventHeader,
|
|
33
|
+
MonthCalendar: () => import_MonthCalendar.MonthCalendar,
|
|
34
|
+
TimeSlots: () => import_TimeSlots.TimeSlots,
|
|
35
|
+
addMonths: () => import_time.addMonths,
|
|
36
|
+
cancelBooking: () => import_client.cancelBooking,
|
|
37
|
+
createBooking: () => import_client.createBooking,
|
|
38
|
+
dateFromKey: () => import_time.dateFromKey,
|
|
39
|
+
fetchBooking: () => import_client.fetchBooking,
|
|
40
|
+
fetchEventType: () => import_client.fetchEventType,
|
|
41
|
+
fetchSlots: () => import_client.fetchSlots,
|
|
42
|
+
formatBookingWhen: () => import_time.formatBookingWhen,
|
|
43
|
+
formatDayLong: () => import_time.formatDayLong,
|
|
44
|
+
formatMonthLabel: () => import_time.formatMonthLabel,
|
|
45
|
+
formatSlotTime: () => import_time.formatSlotTime,
|
|
46
|
+
isBeforeToday: () => import_time.isBeforeToday,
|
|
47
|
+
monthMatrix: () => import_time.monthMatrix,
|
|
48
|
+
monthRange: () => import_time.monthRange,
|
|
49
|
+
sameMonth: () => import_time.sameMonth,
|
|
50
|
+
startOfMonth: () => import_time.startOfMonth,
|
|
51
|
+
useAvailableSlots: () => import_hooks.useAvailableSlots,
|
|
52
|
+
useBooker: () => import_useBooker.useBooker,
|
|
53
|
+
useBooking: () => import_hooks.useBooking,
|
|
54
|
+
useCreateBooking: () => import_hooks.useCreateBooking,
|
|
55
|
+
useEventType: () => import_hooks.useEventType,
|
|
56
|
+
visitorTimeZone: () => import_time.visitorTimeZone,
|
|
57
|
+
weekdayLabels: () => import_time.weekdayLabels,
|
|
58
|
+
ymd: () => import_time.ymd
|
|
59
|
+
});
|
|
60
|
+
module.exports = __toCommonJS(index_exports);
|
|
61
|
+
var import_Booker = require("./Booker.cjs");
|
|
62
|
+
var import_CalendarEmbed = require("./CalendarEmbed.cjs");
|
|
63
|
+
var import_Confirmation = require("./Confirmation.cjs");
|
|
64
|
+
var import_EventHeader = require("./EventHeader.cjs");
|
|
65
|
+
var import_MonthCalendar = require("./MonthCalendar.cjs");
|
|
66
|
+
var import_TimeSlots = require("./TimeSlots.cjs");
|
|
67
|
+
var import_BookingForm = require("./BookingForm.cjs");
|
|
68
|
+
var import_useBooker = require("./useBooker.cjs");
|
|
69
|
+
var import_hooks = require("./hooks.cjs");
|
|
70
|
+
var import_client = require("./client.cjs");
|
|
71
|
+
var import_time = require("./time.cjs");
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var index_exports = {};
|
|
26
|
+
__export(index_exports, {
|
|
27
|
+
Booker: () => import_Booker.Booker,
|
|
28
|
+
BookingForm: () => import_BookingForm.BookingForm,
|
|
29
|
+
CAL_API_VERSION: () => import_client.CAL_API_VERSION,
|
|
30
|
+
CalendarEmbed: () => import_CalendarEmbed.CalendarEmbed,
|
|
31
|
+
CalendarError: () => import_client.CalendarError,
|
|
32
|
+
Confirmation: () => import_Confirmation.Confirmation,
|
|
33
|
+
DEFAULT_API_URL: () => import_client.DEFAULT_API_URL,
|
|
34
|
+
EventHeader: () => import_EventHeader.EventHeader,
|
|
35
|
+
MonthCalendar: () => import_MonthCalendar.MonthCalendar,
|
|
36
|
+
TimeSlots: () => import_TimeSlots.TimeSlots,
|
|
37
|
+
addMonths: () => import_time.addMonths,
|
|
38
|
+
cancelBooking: () => import_client.cancelBooking,
|
|
39
|
+
createBooking: () => import_client.createBooking,
|
|
40
|
+
dateFromKey: () => import_time.dateFromKey,
|
|
41
|
+
fetchBooking: () => import_client.fetchBooking,
|
|
42
|
+
fetchEventType: () => import_client.fetchEventType,
|
|
43
|
+
fetchSlots: () => import_client.fetchSlots,
|
|
44
|
+
formatBookingWhen: () => import_time.formatBookingWhen,
|
|
45
|
+
formatDayLong: () => import_time.formatDayLong,
|
|
46
|
+
formatMonthLabel: () => import_time.formatMonthLabel,
|
|
47
|
+
formatSlotTime: () => import_time.formatSlotTime,
|
|
48
|
+
isBeforeToday: () => import_time.isBeforeToday,
|
|
49
|
+
monthMatrix: () => import_time.monthMatrix,
|
|
50
|
+
monthRange: () => import_time.monthRange,
|
|
51
|
+
sameMonth: () => import_time.sameMonth,
|
|
52
|
+
startOfMonth: () => import_time.startOfMonth,
|
|
53
|
+
useAvailableSlots: () => import_hooks.useAvailableSlots,
|
|
54
|
+
useBooker: () => import_useBooker.useBooker,
|
|
55
|
+
useBooking: () => import_hooks.useBooking,
|
|
56
|
+
useCreateBooking: () => import_hooks.useCreateBooking,
|
|
57
|
+
useEventType: () => import_hooks.useEventType,
|
|
58
|
+
visitorTimeZone: () => import_time.visitorTimeZone,
|
|
59
|
+
weekdayLabels: () => import_time.weekdayLabels,
|
|
60
|
+
ymd: () => import_time.ymd
|
|
61
|
+
});
|
|
62
|
+
module.exports = __toCommonJS(index_exports);
|
|
63
|
+
var import_Booker = require("./Booker.native.js");
|
|
64
|
+
var import_CalendarEmbed = require("./CalendarEmbed.native.js");
|
|
65
|
+
var import_Confirmation = require("./Confirmation.native.js");
|
|
66
|
+
var import_EventHeader = require("./EventHeader.native.js");
|
|
67
|
+
var import_MonthCalendar = require("./MonthCalendar.native.js");
|
|
68
|
+
var import_TimeSlots = require("./TimeSlots.native.js");
|
|
69
|
+
var import_BookingForm = require("./BookingForm.native.js");
|
|
70
|
+
var import_useBooker = require("./useBooker.native.js");
|
|
71
|
+
var import_hooks = require("./hooks.native.js");
|
|
72
|
+
var import_client = require("./client.native.js");
|
|
73
|
+
var import_time = require("./time.native.js");
|
|
74
|
+
//# sourceMappingURL=index.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","index_exports","__export","Booker","import_Booker","BookingForm","import_BookingForm","CAL_API_VERSION","import_client","CalendarEmbed","import_CalendarEmbed","CalendarError","Confirmation","import_Confirmation","DEFAULT_API_URL","EventHeader","import_EventHeader","MonthCalendar","import_MonthCalendar","TimeSlots","import_TimeSlots","addMonths","import_time","cancelBooking","createBooking","dateFromKey","fetchBooking","fetchEventType","fetchSlots","formatBookingWhen","formatDayLong","formatMonthLabel","formatSlotTime","isBeforeToday","monthMatrix","monthRange","sameMonth","startOfMonth","useAvailableSlots","import_hooks","useBooker","import_useBooker","useBooking","useCreateBooking","useEventType","visitorTimeZone","weekdayLabels","ymd","module","exports","require"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var time_exports = {};
|
|
24
|
+
__export(time_exports, {
|
|
25
|
+
addMonths: () => addMonths,
|
|
26
|
+
dateFromKey: () => dateFromKey,
|
|
27
|
+
formatBookingWhen: () => formatBookingWhen,
|
|
28
|
+
formatDayLong: () => formatDayLong,
|
|
29
|
+
formatMonthLabel: () => formatMonthLabel,
|
|
30
|
+
formatSlotTime: () => formatSlotTime,
|
|
31
|
+
isBeforeToday: () => isBeforeToday,
|
|
32
|
+
monthMatrix: () => monthMatrix,
|
|
33
|
+
monthRange: () => monthRange,
|
|
34
|
+
sameMonth: () => sameMonth,
|
|
35
|
+
startOfMonth: () => startOfMonth,
|
|
36
|
+
visitorTimeZone: () => visitorTimeZone,
|
|
37
|
+
weekdayLabels: () => weekdayLabels,
|
|
38
|
+
ymd: () => ymd
|
|
39
|
+
});
|
|
40
|
+
module.exports = __toCommonJS(time_exports);
|
|
41
|
+
function visitorTimeZone() {
|
|
42
|
+
try {
|
|
43
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
44
|
+
} catch {
|
|
45
|
+
return "UTC";
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function ymd(d) {
|
|
49
|
+
const y = d.getFullYear();
|
|
50
|
+
const m = String(d.getMonth() + 1).padStart(2, "0");
|
|
51
|
+
const day = String(d.getDate()).padStart(2, "0");
|
|
52
|
+
return `${y}-${m}-${day}`;
|
|
53
|
+
}
|
|
54
|
+
function startOfMonth(d) {
|
|
55
|
+
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
56
|
+
}
|
|
57
|
+
function addMonths(d, n) {
|
|
58
|
+
return new Date(d.getFullYear(), d.getMonth() + n, 1);
|
|
59
|
+
}
|
|
60
|
+
function sameMonth(a, b) {
|
|
61
|
+
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
62
|
+
}
|
|
63
|
+
function isBeforeToday(key) {
|
|
64
|
+
return key < ymd(/* @__PURE__ */new Date());
|
|
65
|
+
}
|
|
66
|
+
function monthMatrix(viewDate, weekStartsOn = 0) {
|
|
67
|
+
const year = viewDate.getFullYear();
|
|
68
|
+
const month = viewDate.getMonth();
|
|
69
|
+
const firstWeekday = new Date(year, month, 1).getDay();
|
|
70
|
+
const startOffset = (firstWeekday - weekStartsOn + 7) % 7;
|
|
71
|
+
const cells = [];
|
|
72
|
+
for (let i = 0; i < 42; i++) {
|
|
73
|
+
const date = new Date(year, month, 1 - startOffset + i);
|
|
74
|
+
cells.push({
|
|
75
|
+
date,
|
|
76
|
+
key: ymd(date),
|
|
77
|
+
inMonth: date.getMonth() === month
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return cells;
|
|
81
|
+
}
|
|
82
|
+
function monthRange(viewDate) {
|
|
83
|
+
const year = viewDate.getFullYear();
|
|
84
|
+
const month = viewDate.getMonth();
|
|
85
|
+
const startOfView = new Date(year, month, 1, 0, 0, 0, 0);
|
|
86
|
+
const now = /* @__PURE__ */new Date();
|
|
87
|
+
const start = startOfView.getTime() > now.getTime() ? startOfView : now;
|
|
88
|
+
const endOfView = new Date(year, month + 1, 0, 23, 59, 59, 999);
|
|
89
|
+
return {
|
|
90
|
+
startTime: start.toISOString(),
|
|
91
|
+
endTime: endOfView.toISOString()
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function weekdayLabels(weekStartsOn = 0) {
|
|
95
|
+
const fmt = new Intl.DateTimeFormat(void 0, {
|
|
96
|
+
weekday: "short"
|
|
97
|
+
});
|
|
98
|
+
const out = [];
|
|
99
|
+
for (let i = 0; i < 7; i++) {
|
|
100
|
+
const d = new Date(2023, 0, 1 + (i + weekStartsOn) % 7);
|
|
101
|
+
out.push(fmt.format(d));
|
|
102
|
+
}
|
|
103
|
+
return out;
|
|
104
|
+
}
|
|
105
|
+
function formatMonthLabel(d) {
|
|
106
|
+
return new Intl.DateTimeFormat(void 0, {
|
|
107
|
+
month: "long",
|
|
108
|
+
year: "numeric"
|
|
109
|
+
}).format(d);
|
|
110
|
+
}
|
|
111
|
+
function formatDayLong(d) {
|
|
112
|
+
return new Intl.DateTimeFormat(void 0, {
|
|
113
|
+
weekday: "long",
|
|
114
|
+
month: "long",
|
|
115
|
+
day: "numeric"
|
|
116
|
+
}).format(d);
|
|
117
|
+
}
|
|
118
|
+
function formatSlotTime(iso, timeZone) {
|
|
119
|
+
return new Intl.DateTimeFormat(void 0, {
|
|
120
|
+
hour: "numeric",
|
|
121
|
+
minute: "2-digit",
|
|
122
|
+
timeZone
|
|
123
|
+
}).format(new Date(iso));
|
|
124
|
+
}
|
|
125
|
+
function formatBookingWhen(iso, timeZone) {
|
|
126
|
+
const at = new Date(iso);
|
|
127
|
+
const date = new Intl.DateTimeFormat(void 0, {
|
|
128
|
+
weekday: "long",
|
|
129
|
+
month: "long",
|
|
130
|
+
day: "numeric",
|
|
131
|
+
year: "numeric",
|
|
132
|
+
timeZone
|
|
133
|
+
}).format(at);
|
|
134
|
+
const time = new Intl.DateTimeFormat(void 0, {
|
|
135
|
+
hour: "numeric",
|
|
136
|
+
minute: "2-digit",
|
|
137
|
+
timeZoneName: "short",
|
|
138
|
+
timeZone
|
|
139
|
+
}).format(at);
|
|
140
|
+
return `${date} at ${time}`;
|
|
141
|
+
}
|
|
142
|
+
function dateFromKey(key) {
|
|
143
|
+
const [y, m, d] = key.split("-").map(Number);
|
|
144
|
+
return new Date(y, (m ?? 1) - 1, d ?? 1, 12, 0, 0, 0);
|
|
145
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
}), mod);
|
|
25
|
+
var time_exports = {};
|
|
26
|
+
__export(time_exports, {
|
|
27
|
+
addMonths: () => addMonths,
|
|
28
|
+
dateFromKey: () => dateFromKey,
|
|
29
|
+
formatBookingWhen: () => formatBookingWhen,
|
|
30
|
+
formatDayLong: () => formatDayLong,
|
|
31
|
+
formatMonthLabel: () => formatMonthLabel,
|
|
32
|
+
formatSlotTime: () => formatSlotTime,
|
|
33
|
+
isBeforeToday: () => isBeforeToday,
|
|
34
|
+
monthMatrix: () => monthMatrix,
|
|
35
|
+
monthRange: () => monthRange,
|
|
36
|
+
sameMonth: () => sameMonth,
|
|
37
|
+
startOfMonth: () => startOfMonth,
|
|
38
|
+
visitorTimeZone: () => visitorTimeZone,
|
|
39
|
+
weekdayLabels: () => weekdayLabels,
|
|
40
|
+
ymd: () => ymd
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(time_exports);
|
|
43
|
+
function visitorTimeZone() {
|
|
44
|
+
try {
|
|
45
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone || "UTC";
|
|
46
|
+
} catch (e) {
|
|
47
|
+
return "UTC";
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function ymd(d) {
|
|
51
|
+
var y = d.getFullYear();
|
|
52
|
+
var m = String(d.getMonth() + 1).padStart(2, "0");
|
|
53
|
+
var day = String(d.getDate()).padStart(2, "0");
|
|
54
|
+
return `${y}-${m}-${day}`;
|
|
55
|
+
}
|
|
56
|
+
function startOfMonth(d) {
|
|
57
|
+
return new Date(d.getFullYear(), d.getMonth(), 1);
|
|
58
|
+
}
|
|
59
|
+
function addMonths(d, n) {
|
|
60
|
+
return new Date(d.getFullYear(), d.getMonth() + n, 1);
|
|
61
|
+
}
|
|
62
|
+
function sameMonth(a, b) {
|
|
63
|
+
return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth();
|
|
64
|
+
}
|
|
65
|
+
function isBeforeToday(key) {
|
|
66
|
+
return key < ymd(/* @__PURE__ */new Date());
|
|
67
|
+
}
|
|
68
|
+
function monthMatrix(viewDate) {
|
|
69
|
+
var weekStartsOn = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
|
|
70
|
+
var year = viewDate.getFullYear();
|
|
71
|
+
var month = viewDate.getMonth();
|
|
72
|
+
var firstWeekday = new Date(year, month, 1).getDay();
|
|
73
|
+
var startOffset = (firstWeekday - weekStartsOn + 7) % 7;
|
|
74
|
+
var cells = [];
|
|
75
|
+
for (var i = 0; i < 42; i++) {
|
|
76
|
+
var date = new Date(year, month, 1 - startOffset + i);
|
|
77
|
+
cells.push({
|
|
78
|
+
date,
|
|
79
|
+
key: ymd(date),
|
|
80
|
+
inMonth: date.getMonth() === month
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return cells;
|
|
84
|
+
}
|
|
85
|
+
function monthRange(viewDate) {
|
|
86
|
+
var year = viewDate.getFullYear();
|
|
87
|
+
var month = viewDate.getMonth();
|
|
88
|
+
var startOfView = new Date(year, month, 1, 0, 0, 0, 0);
|
|
89
|
+
var now = /* @__PURE__ */new Date();
|
|
90
|
+
var start = startOfView.getTime() > now.getTime() ? startOfView : now;
|
|
91
|
+
var endOfView = new Date(year, month + 1, 0, 23, 59, 59, 999);
|
|
92
|
+
return {
|
|
93
|
+
startTime: start.toISOString(),
|
|
94
|
+
endTime: endOfView.toISOString()
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
function weekdayLabels() {
|
|
98
|
+
var weekStartsOn = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 0;
|
|
99
|
+
var fmt = new Intl.DateTimeFormat(void 0, {
|
|
100
|
+
weekday: "short"
|
|
101
|
+
});
|
|
102
|
+
var out = [];
|
|
103
|
+
for (var i = 0; i < 7; i++) {
|
|
104
|
+
var d = new Date(2023, 0, 1 + (i + weekStartsOn) % 7);
|
|
105
|
+
out.push(fmt.format(d));
|
|
106
|
+
}
|
|
107
|
+
return out;
|
|
108
|
+
}
|
|
109
|
+
function formatMonthLabel(d) {
|
|
110
|
+
return new Intl.DateTimeFormat(void 0, {
|
|
111
|
+
month: "long",
|
|
112
|
+
year: "numeric"
|
|
113
|
+
}).format(d);
|
|
114
|
+
}
|
|
115
|
+
function formatDayLong(d) {
|
|
116
|
+
return new Intl.DateTimeFormat(void 0, {
|
|
117
|
+
weekday: "long",
|
|
118
|
+
month: "long",
|
|
119
|
+
day: "numeric"
|
|
120
|
+
}).format(d);
|
|
121
|
+
}
|
|
122
|
+
function formatSlotTime(iso, timeZone) {
|
|
123
|
+
return new Intl.DateTimeFormat(void 0, {
|
|
124
|
+
hour: "numeric",
|
|
125
|
+
minute: "2-digit",
|
|
126
|
+
timeZone
|
|
127
|
+
}).format(new Date(iso));
|
|
128
|
+
}
|
|
129
|
+
function formatBookingWhen(iso, timeZone) {
|
|
130
|
+
var at = new Date(iso);
|
|
131
|
+
var date = new Intl.DateTimeFormat(void 0, {
|
|
132
|
+
weekday: "long",
|
|
133
|
+
month: "long",
|
|
134
|
+
day: "numeric",
|
|
135
|
+
year: "numeric",
|
|
136
|
+
timeZone
|
|
137
|
+
}).format(at);
|
|
138
|
+
var time = new Intl.DateTimeFormat(void 0, {
|
|
139
|
+
hour: "numeric",
|
|
140
|
+
minute: "2-digit",
|
|
141
|
+
timeZoneName: "short",
|
|
142
|
+
timeZone
|
|
143
|
+
}).format(at);
|
|
144
|
+
return `${date} at ${time}`;
|
|
145
|
+
}
|
|
146
|
+
function dateFromKey(key) {
|
|
147
|
+
var [y, m, d] = key.split("-").map(Number);
|
|
148
|
+
return new Date(y, (m !== null && m !== void 0 ? m : 1) - 1, d !== null && d !== void 0 ? d : 1, 12, 0, 0, 0);
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=time.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","time_exports","__export","addMonths","dateFromKey","formatBookingWhen","formatDayLong","formatMonthLabel","formatSlotTime","isBeforeToday","monthMatrix","monthRange","sameMonth","startOfMonth","visitorTimeZone","weekdayLabels","ymd","module","exports","Intl","DateTimeFormat","resolvedOptions","timeZone","e","d","y","getFullYear","m","String","getMonth","padStart","day","getDate","Date","n","a","b","key","viewDate","weekStartsOn","arguments","length","year","month","firstWeekday","getDay","startOffset","cells","i","date","push","inMonth","startOfView","now","start","getTime","endOfView","startTime","toISOString","endTime","fmt","weekday","out","format","iso","hour","minute","at"],"sources":["../../src/time.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,YAAA;AAAAC,QAAA,CAAAD,YAAA;EAAAE,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,iBAAA,EAAAA,CAAA,KAAAA,iBAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,cAAA,EAAAA,CAAA,KAAAA,cAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,WAAA,EAAAA,CAAA,KAAAA,WAAA;EAAAC,UAAA,EAAAA,CAAA,KAAAA,UAAA;EAAAC,SAAA,EAAAA,CAAA,KAAAA,SAAA;EAAAC,YAAA,EAAAA,CAAA,KAAAA,YAAA;EAAAC,eAAA,EAAAA,CAAA,KAAAA,eAAA;EAAAC,aAAA,EAAAA,CAAA,KAAAA,aAAA;EAAAC,GAAA,EAAAA,CAAA,KAAAA;AAAA;AAIOC,MAAA,CAAAC,OAAS,GAAAtB,YAA0B,CAAAK,YAAA;AACxC,SAAIa,gBAAA;EACF;IACF,OAAQK,IAAA,CAAAC,cAAA,GAAAC,eAAA,GAAAC,QAAA;EACN,SAAOC,CAAA;IACT;EACF;AAGO;AACL,SAAMP,GAAIA,CAAAQ,CAAE;EACZ,IAAAC,CAAA,GAAMD,CAAA,CAAIE,WAAS;EACnB,IAAAC,CAAA,GAAMC,MAAM,CAAAJ,CAAA,CAAAK,QAAS,KAAS,EAAE,CAAAC,QAAS,IAAG,GAAG;EAC/C,IAAAC,GAAO,GAAGH,MAAM,CAAAJ,CAAA,CAAAQ,OAAO,IAAAF,QAAA;EACzB,UAAAL,CAAA,IAAAE,CAAA,IAAAI,GAAA;AAEO;AACL,SAAOlB,YAAWA,CAAAW,CAAA;EACpB,WAAAS,IAAA,CAAAT,CAAA,CAAAE,WAAA,IAAAF,CAAA,CAAAK,QAAA;AAEO;AACL,SAAO1B,SAASA,CAAAqB,CAAE,EAAAU,CAAA;EACpB,WAAAD,IAAA,CAAAT,CAAA,CAAAE,WAAA,IAAAF,CAAA,CAAAK,QAAA,KAAAK,CAAA;AAEO;AACL,SAAOtB,SAAEA,CAAAuB,CAAA,EAAAC,CAAY;EACvB,OAAAD,CAAA,CAAAT,WAAA,OAAAU,CAAA,CAAAV,WAAA,MAAAS,CAAA,CAAAN,QAAA,OAAAO,CAAA,CAAAP,QAAA;AAGO;AACL,SAAOpB,aAAUA,CAAA4B,GAAA;EACnB,OAAAA,GAAA,GAAArB,GAAA,oBAAAiB,IAAA;AAYO;AACL,SAAMvB,WAAOA,CAAA4B,QAAS;EACtB,IAAAC,YAAc,GAAAC,SAAS,CAAAC,MAAS,QAAAD,SAAA,iBAAAA,SAAA;EAChC,IAAAE,IAAM,GAAAJ,QAAA,CAAAZ,WAAwB;EAC9B,IAAAiB,KAAM,GAAAL,QAAA,CAAeT,QAAA;EACrB,IAAAe,YAA4B,OAAAX,IAAA,CAAAS,IAAA,EAAAC,KAAA,KAAAE,MAAA;EAC5B,IAAAC,WAAa,GAAG,CAAAF,YAAa,GAAAL,YAAA;EAC3B,IAAAQ,KAAM;EACN,SAAMC,CAAA,GAAK,GAAEA,CAAA,KAAM,EAAAA,CAAA,EAAK;IAC1B,IAAAC,IAAA,OAAAhB,IAAA,CAAAS,IAAA,EAAAC,KAAA,MAAAG,WAAA,GAAAE,CAAA;IACAD,KAAO,CAAAG,IAAA;MACTD,IAAA;MAMOZ,GAAS,EAAArB,GAAA,CAAAiC,IAAA,CAAW;MACzBE,OAAM,EAAOF,IAAA,CAAApB,QAAS,OAAAc;IACtB;EACA;EACA,OAAMI,KAAM;AACZ;AACA,SAAMpC,WAAY2B,QAAI,EAAK;EAC3B,IAAAI,IAAO,GAAEJ,QAAA,CAAWZ,WAAM;EAC5B,IAAAiB,KAAA,GAAAL,QAAA,CAAAT,QAAA;EAGO,IAAAuB,WAAS,OAAcnB,IAAA,CAAAS,IAAA,EAAAC,KAAe,EAAa;EACxD,IAAAU,GAAM,kBAAe,IAAApB,IAAA,EAAe;EACpC,IAAAqB,KAAM,GAAgBF,WAAC,CAAAG,OAAA,KAAAF,GAAA,CAAAE,OAAA,KAAAH,WAAA,GAAAC,GAAA;EACvB,IAAAG,SAAa,GAAG,IAAIvB,IAAG,CAAAS,IAAK,EAAAC,KAAA;EAE1B;IACAc,SAAS,EAAAH,KAAI,CAAAI,WAAS;IACxBC,OAAA,EAAAH,SAAA,CAAAE,WAAA;EACA;AACF;AAEO,SAAS3C,cAAA;EACd,IAAAwB,YAAgB,GAAAC,SAAA,CAAAC,MAAe,IAAW,IAAED,SAAO,QAAQ,KAAM,IAAAA,SAAa,MAAQ;EACxF,IAAAoB,GAAA,OAAAzC,IAAA,CAAAC,cAAA;IAEOyC,OAAS;EACd;EAA0C,IACxCC,GAAA,KAAS;EAAA,KACT,IAAOd,CAAA,MAAAA,CAAA,MAAAA,CAAA;IACP,IAAAxB,CAAK,OAAAS,IAAA,eAAAe,CAAA,GAAAT,YAAA;IACNuB,GAAE,CAAAZ,IAAO,CAACU,GAAA,CAAAG,MAAA,CAAAvC,CAAA;EACb;EAGO,OAASsC,GAAA;AACd;AAA0C,SACxCvD,gBAAMA,CAAAiB,CAAA;EAAA,OACN,IAAQL,IAAA,CAAAC,cAAA;IACRuB,KAAA;IACDD,IAAE;EACL,GAAAqB,MAAA,CAAAvC,CAAA;AAGO;AACL,SAAMlB,aAAcA,CAAAkB,CAAA,EAAG;EACvB,OAAM,IAAAL,IAAO,CAAAC,cAAS,OAAe;IACnCyC,OAAA,EAAS;IACTlB,KAAA,EAAO;IACPZ,GAAA,EAAK;EAAA,EACL,CAAAgC,MAAM,CAAAvC,CAAA;AAAA;AACN,SACChB,cAASA,CAAAwD,GAAA,EAAA1C,QAAA;EACZ,OAAM,IAAAH,IAAO,CAAAC,cAAS,OAAe;IACnC6C,IAAA,EAAM;IACNC,MAAA,EAAQ;IACR5C;EAAc,EACd,CAAAyC,MAAA,KAAA9B,IAAA,CAAA+B,GAAA;AAAA;AAEF,SAAO3D,iBAAcA,CAAI2D,GAAA,EAAA1C,QAAA;EAC3B,IAAA6C,EAAA,OAAAlC,IAAA,CAAA+B,GAAA;EAGO,IAAAf,IAAS,OAAA9B,IAAY,CAAAC,cAAmB;IAC7CyC,OAAO,EAAG,MAAI;IACdlB,KAAO,QAAI;IACbZ,GAAA","ignoreList":[]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all) __defProp(target, name, {
|
|
7
|
+
get: all[name],
|
|
8
|
+
enumerable: true
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
14
|
+
get: () => from[key],
|
|
15
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
21
|
+
value: true
|
|
22
|
+
}), mod);
|
|
23
|
+
var useBooker_exports = {};
|
|
24
|
+
__export(useBooker_exports, {
|
|
25
|
+
useBooker: () => useBooker
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(useBooker_exports);
|
|
28
|
+
var import_react = require("react");
|
|
29
|
+
var import_client = require("./client.cjs");
|
|
30
|
+
var import_hooks = require("./hooks.cjs");
|
|
31
|
+
var import_time = require("./time.cjs");
|
|
32
|
+
function useBooker(opts) {
|
|
33
|
+
const api = opts.apiUrl ?? import_client.DEFAULT_API_URL;
|
|
34
|
+
const timeZone = opts.timeZone ?? (0, import_time.visitorTimeZone)();
|
|
35
|
+
const weekStartsOn = opts.weekStartsOn ?? 0;
|
|
36
|
+
const event = (0, import_hooks.useEventType)(api, opts.eventSlug, opts.host);
|
|
37
|
+
const [viewDate, setViewDate] = (0, import_react.useState)(() => (0, import_time.startOfMonth)(/* @__PURE__ */new Date()));
|
|
38
|
+
const {
|
|
39
|
+
startTime,
|
|
40
|
+
endTime
|
|
41
|
+
} = (0, import_react.useMemo)(() => (0, import_time.monthRange)(viewDate), [viewDate]);
|
|
42
|
+
const slots = (0, import_hooks.useAvailableSlots)(api, {
|
|
43
|
+
eventTypeSlug: opts.eventSlug,
|
|
44
|
+
username: opts.host,
|
|
45
|
+
startTime,
|
|
46
|
+
endTime,
|
|
47
|
+
timeZone,
|
|
48
|
+
enabled: !!event.data
|
|
49
|
+
});
|
|
50
|
+
const [selectedDay, setSelectedDay] = (0, import_react.useState)(null);
|
|
51
|
+
const [selectedSlot, setSelectedSlot] = (0, import_react.useState)(null);
|
|
52
|
+
const [phase, setPhase] = (0, import_react.useState)("pick");
|
|
53
|
+
const [booking, setBooking] = (0, import_react.useState)(null);
|
|
54
|
+
const create = (0, import_hooks.useCreateBooking)(api);
|
|
55
|
+
const availableKeys = (0, import_react.useMemo)(() => {
|
|
56
|
+
const map = slots.data ?? {};
|
|
57
|
+
return new Set(Object.keys(map).filter(k => (map[k]?.length ?? 0) > 0));
|
|
58
|
+
}, [slots.data]);
|
|
59
|
+
const daySlots = (0, import_react.useMemo)(() => {
|
|
60
|
+
if (!selectedDay) return [];
|
|
61
|
+
return slots.data?.[selectedDay] ?? [];
|
|
62
|
+
}, [slots.data, selectedDay]);
|
|
63
|
+
(0, import_react.useEffect)(() => {
|
|
64
|
+
if (!opts.autoSelectFirst) return;
|
|
65
|
+
if (selectedDay && availableKeys.has(selectedDay)) return;
|
|
66
|
+
const first = [...availableKeys].sort()[0];
|
|
67
|
+
if (first) {
|
|
68
|
+
setSelectedDay(first);
|
|
69
|
+
setSelectedSlot(null);
|
|
70
|
+
}
|
|
71
|
+
}, [opts.autoSelectFirst, availableKeys, selectedDay]);
|
|
72
|
+
const now = (0, import_time.startOfMonth)(/* @__PURE__ */new Date());
|
|
73
|
+
const atFirstMonth = viewDate.getFullYear() === now.getFullYear() && viewDate.getMonth() === now.getMonth();
|
|
74
|
+
const goPrevMonth = () => {
|
|
75
|
+
if (atFirstMonth) return;
|
|
76
|
+
setViewDate(d => (0, import_time.addMonths)(d, -1));
|
|
77
|
+
setSelectedDay(null);
|
|
78
|
+
setSelectedSlot(null);
|
|
79
|
+
};
|
|
80
|
+
const goNextMonth = () => {
|
|
81
|
+
setViewDate(d => (0, import_time.addMonths)(d, 1));
|
|
82
|
+
setSelectedDay(null);
|
|
83
|
+
setSelectedSlot(null);
|
|
84
|
+
};
|
|
85
|
+
const selectDay = key => {
|
|
86
|
+
setSelectedDay(key);
|
|
87
|
+
setSelectedSlot(null);
|
|
88
|
+
};
|
|
89
|
+
const selectSlot = iso => {
|
|
90
|
+
setSelectedSlot(iso);
|
|
91
|
+
setPhase("form");
|
|
92
|
+
create.reset();
|
|
93
|
+
};
|
|
94
|
+
const back = () => {
|
|
95
|
+
setPhase("pick");
|
|
96
|
+
setSelectedSlot(null);
|
|
97
|
+
create.reset();
|
|
98
|
+
};
|
|
99
|
+
const reset = () => {
|
|
100
|
+
setBooking(null);
|
|
101
|
+
setSelectedSlot(null);
|
|
102
|
+
setSelectedDay(null);
|
|
103
|
+
setPhase("pick");
|
|
104
|
+
create.reset();
|
|
105
|
+
slots.refetch();
|
|
106
|
+
};
|
|
107
|
+
const submit = async responses => {
|
|
108
|
+
if (!selectedSlot) return;
|
|
109
|
+
const result = await create.submit({
|
|
110
|
+
eventTypeSlug: opts.eventSlug,
|
|
111
|
+
username: opts.host,
|
|
112
|
+
start: selectedSlot,
|
|
113
|
+
timeZone,
|
|
114
|
+
responses
|
|
115
|
+
});
|
|
116
|
+
if (result.ok) {
|
|
117
|
+
setBooking(result.booking);
|
|
118
|
+
setPhase("done");
|
|
119
|
+
opts.onBooked?.(result.booking);
|
|
120
|
+
} else if (result.conflict) {
|
|
121
|
+
slots.refetch();
|
|
122
|
+
setSelectedSlot(null);
|
|
123
|
+
setPhase("pick");
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
return {
|
|
127
|
+
api,
|
|
128
|
+
timeZone,
|
|
129
|
+
weekStartsOn,
|
|
130
|
+
event,
|
|
131
|
+
slots,
|
|
132
|
+
viewDate,
|
|
133
|
+
availableKeys,
|
|
134
|
+
selectedDay,
|
|
135
|
+
daySlots,
|
|
136
|
+
selectedSlot,
|
|
137
|
+
phase,
|
|
138
|
+
booking,
|
|
139
|
+
submitting: create.submitting,
|
|
140
|
+
error: create.error,
|
|
141
|
+
conflict: create.conflict,
|
|
142
|
+
goPrevMonth,
|
|
143
|
+
goNextMonth,
|
|
144
|
+
atFirstMonth,
|
|
145
|
+
selectDay,
|
|
146
|
+
selectSlot,
|
|
147
|
+
submit,
|
|
148
|
+
back,
|
|
149
|
+
reset
|
|
150
|
+
};
|
|
151
|
+
}
|