@forgebuild/sidon-booking-widget 2.0.1 → 3.0.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 +16 -13
- package/dist/elements.d.ts +2 -2
- package/dist/sidon-booking-widget.js +2675 -2699
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -215,14 +215,14 @@ an HTML tag. Without a bundler, load `dist/sidon-booking-widget.js` with `<scrip
|
|
|
215
215
|
The wizard has four steps:
|
|
216
216
|
|
|
217
217
|
1. **Documents**: the sailor's documents, held once for all marinas. The guest signs in with Sidon
|
|
218
|
-
(
|
|
218
|
+
(a popup on Sidon's site), and the step shows which of the marina's requirements are met and lets them upload
|
|
219
219
|
what's missing. Uploads go straight to OTA, not through your forwarder. *Next* unlocks once
|
|
220
220
|
OTA says the requirements pass for the stay's dates.
|
|
221
221
|
- It applies only where OTA has switched on the marina's `sailor_documents`. Other marinas keep
|
|
222
222
|
the per-booking upload on [the booking page](#the-booking-page), and the wizard skips this
|
|
223
223
|
step: it opens on Details and the stepper shows 1 Details, 2 Payment, 3 Booking. Events
|
|
224
224
|
still carry the step numbers below (Details is `2`).
|
|
225
|
-
- It needs `
|
|
225
|
+
- It needs `sailor-api-origin`; see [Documents setup](#documents-setup).
|
|
226
226
|
2. **Details**: dates, boat length and berth (with an optional map), then the guest's contact and
|
|
227
227
|
boat details. *Next* puts a 30-minute hold on the berth.
|
|
228
228
|
3. **Payment**: Stripe's Payment Element. The card is authorised at this step and captured when the
|
|
@@ -249,7 +249,7 @@ shows the booking view again, with a *Start a new booking* action.
|
|
|
249
249
|
| `currency-symbol` | `''` | When empty, amounts are formatted in the marina's currency with `Intl.NumberFormat`. Set it, to `$` for example, to show that fixed symbol before amounts instead. |
|
|
250
250
|
| `variant` | `navy` | `navy` or `dark`; see [Theming](#theming). |
|
|
251
251
|
| `booking-id` | absent | When present, the element is in [booking-page mode](#the-booking-page). A value overrides the booking id in the URL. |
|
|
252
|
-
| `
|
|
252
|
+
| `sidon-origin` | `https://marina.sidonmarine.uk` | Where the Documents step's *Sign in with Sidon* popup opens; see [Documents setup](#documents-setup). Override only to test against another Sidon. |
|
|
253
253
|
| `sailor-api-origin` | `''` | OTA's origin, where the Documents step uploads to (`/api/sailor/documents`). Uploads don't go through the forwarder. |
|
|
254
254
|
| `maps-api-key` | | Google Maps JS API key. The map renders only when this is set. It never renders on step 4 or in booking-page mode. |
|
|
255
255
|
| `map-style` | `chart` | `chart` (buoy circles) or `coastal` (SVG pontoon overlays). |
|
|
@@ -277,18 +277,21 @@ root and can be caught anywhere on the page:
|
|
|
277
277
|
|
|
278
278
|
### Documents setup
|
|
279
279
|
|
|
280
|
+
Sign-in is Sidon's, not the site's: *Sign in with Sidon* opens a popup on Sidon's `/connect` page,
|
|
281
|
+
and the sailor signs in (or signs up) with their Sidon account there. The popup hands the widget a
|
|
282
|
+
sailor token, which it keeps for the browser tab. The site has no auth setup of its own.
|
|
283
|
+
|
|
280
284
|
Per site:
|
|
281
285
|
|
|
282
|
-
1.
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
4. On OTA, switch on the marina's `sailor_documents`, last, and only once every site booking that
|
|
288
|
-
marina runs the new widget. Switching it on earlier shows guests "Sign-in is unavailable" and
|
|
289
|
-
gives 1.x sites a raw "Sign in required".
|
|
286
|
+
1. Ask Sidon to add the site's origin (e.g. `https://www.example.com`) to `CONNECT_ORIGINS`. The
|
|
287
|
+
popup refuses any other origin.
|
|
288
|
+
2. Upgrade the widget and the forwarder, then set `sailor-api-origin` on the element.
|
|
289
|
+
3. On OTA, switch on the marina's `sailor_documents`, last, and only once every site booking that
|
|
290
|
+
marina runs the new widget. 1.x sites get a raw "Sign in required" once it's on.
|
|
290
291
|
|
|
291
|
-
|
|
292
|
+
`sidon-origin` points the popup at another Sidon (a local or staging one); leave it unset in
|
|
293
|
+
production. Sidon's Clerk instance needs the `ota` JWT template (claims `email` and `name`), and
|
|
294
|
+
OTA's `SAILOR_CLERK_SECRET_KEYS` must hold that instance's secret key.
|
|
292
295
|
|
|
293
296
|
The forwarder forwards the `X-Sailor-Token` header, so update `@forgebuild/sidon-booking-widget`
|
|
294
297
|
in the forwarder's project too.
|
|
@@ -528,7 +531,7 @@ between two styles:
|
|
|
528
531
|
The wizard gained a first step, so the step numbers moved: 1 Documents, 2 Details, 3 Payment,
|
|
529
532
|
4 Booking. **This breaks hosts listening to `sidon-step-change`** (and anything keyed on step 3
|
|
530
533
|
being the booking), so it ships as a major version. Update those listeners, and set
|
|
531
|
-
`
|
|
534
|
+
`sailor-api-origin` ([Documents setup](#documents-setup)). On
|
|
532
535
|
[the booking page](#the-booking-page), marinas on sailor documents no longer show the per-booking
|
|
533
536
|
upload.
|
|
534
537
|
|
package/dist/elements.d.ts
CHANGED
|
@@ -62,8 +62,8 @@ export interface SidonBookingWidgetElement extends HTMLElement {
|
|
|
62
62
|
logoMark?: string | null;
|
|
63
63
|
marinaName?: string;
|
|
64
64
|
otherMarinas?: OtherMarina[];
|
|
65
|
-
/**
|
|
66
|
-
|
|
65
|
+
/** Sidon's origin for the Documents step's sign-in popup; defaults to https://marina.sidonmarine.uk. */
|
|
66
|
+
sidonOrigin?: string;
|
|
67
67
|
/** Origin serving OTA's /api/sailor/documents; '' (default) = this page's origin. */
|
|
68
68
|
sailorApiOrigin?: string;
|
|
69
69
|
}
|