@riverbankcms/sdk 0.88.0 → 0.90.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 +27 -4
- package/dist/{PreviewEditorSidebar-EVRS3C7T.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
- package/dist/{PreviewEditorUI-54WD4IGE.mjs → PreviewEditorUI-J3JN5Z7T.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-UBL6MSNP.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +216 -0
- package/dist/_dts/altcha/src/AltchaWidget.d.ts +1 -1
- package/dist/_dts/api/src/accessAdmin.d.ts +7 -0
- package/dist/_dts/api/src/bookingOperations.d.ts +2 -0
- package/dist/_dts/api/src/bookingRecords.d.ts +4 -2
- package/dist/_dts/api/src/bookings.d.ts +3 -1
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +7 -6
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +15 -5
- package/dist/_dts/api/src/request.d.ts +21 -0
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +3 -1
- package/dist/_dts/api/src/sdkContracts.d.ts +2 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +5 -1
- package/dist/_dts/api/src/siteMembers.d.ts +6 -1
- package/dist/_dts/api/src/types.d.ts +4 -2
- package/dist/_dts/api/src/url.d.ts +6 -3
- package/dist/_dts/block-form/src/utils/visibleWhen.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailCard.d.ts +5 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterThumbnailGrid.d.ts +9 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/index.d.ts +1 -0
- package/dist/_dts/blocks/src/contracts/non-block-islands.d.ts +7 -11
- package/dist/_dts/blocks/src/contracts/proof-block-islands.d.ts +6 -0
- package/dist/_dts/blocks/src/index.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +14 -6
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -4
- package/dist/_dts/blocks/src/system/blocks/hero.d.ts +0 -2
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/shop.shared.d.ts +8 -0
- package/dist/_dts/blocks/src/system/constants/events.d.ts +4 -1
- package/dist/_dts/blocks/src/system/icons/cta.d.ts +3 -3
- package/dist/_dts/blocks/src/system/icons/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -2
- package/dist/_dts/blocks/src/system/icons/semantic.d.ts +3 -3
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +72 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +3 -1
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +18 -5
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +51 -6
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/loadStateError.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableDates.state.d.ts +55 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useAvailableSlots.state.d.ts +39 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.d.ts +4 -27
- package/dist/_dts/blocks/src/system/runtime/hooks/useBookingFormConfig.state.d.ts +40 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useCalendarEvents.state.d.ts +20 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventFilters.state.d.ts +31 -0
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/hooks/useEventPagination.state.d.ts +39 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/useCourseRegistrationWizard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details/logic.d.ts +1 -17
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.client.d.ts +5 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-details.server.d.ts +5 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/event-registration.headless.contract.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/eventPaymentOptions.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/types.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.d.ts +50 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration/useEventRegistrationWizard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.interactive.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/event-registration.server.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCalendar.interactive.d.ts +11 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.client.d.ts +2 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventCombined.interactive.d.ts +11 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventPaginatedListView.client.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/calendarViewOptions.d.ts +10 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventProductEligibility.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/newsletter-form.client.state.d.ts +24 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.d.ts +24 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +5 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/shared/useWaitlistClaim.state.d.ts +35 -0
- package/dist/_dts/content-model/src/entry-slots/index.d.ts +1 -0
- package/dist/_dts/content-model/src/entry-slots/sdkBlocks.d.ts +21 -0
- package/dist/_dts/content-model/src/entry-slots/types.d.ts +61 -0
- package/dist/_dts/core/src/branded.d.ts +7 -0
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/money-input.d.ts +18 -0
- package/dist/_dts/core/src/site-route-target.d.ts +40 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +209 -2
- package/dist/_dts/media-core/src/fileDomain.d.ts +4 -0
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +2 -1
- package/dist/_dts/media-editor/src/fieldUi.d.ts +6 -0
- package/dist/_dts/media-editor/src/index.d.ts +1 -1
- package/dist/_dts/preview-next/src/client/index.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/PreviewThemedSiteDocument.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/SiteChromeEditableSurface.d.ts +2 -2
- package/dist/_dts/preview-next/src/client/preview/themeRuntime.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/sdk/SdkPreviewMode.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/commands/pull-dated-offering-scope.d.ts +10 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +12 -5
- package/dist/_dts/sdk/src/client/management/types.d.ts +6 -55
- package/dist/_dts/sdk/src/client/runtimeCachePolicy.d.ts +160 -0
- package/dist/_dts/sdk/src/client/types.d.ts +26 -1
- package/dist/_dts/sdk/src/components.d.ts +1 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +3 -1
- package/dist/_dts/sdk/src/index.d.ts +3 -1
- package/dist/_dts/sdk/src/next/types.d.ts +8 -11
- package/dist/_dts/sdk/src/preview-next/client/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/blocks-theme-scope.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +8 -7
- package/dist/_dts/sdk/src/rendering/components/pageShared.d.ts +5 -6
- package/dist/_dts/sdk/src/rendering/index.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/server.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/themeRuntime.d.ts +26 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +18 -0
- package/dist/_dts/theme-core/src/ResponsiveScope.d.ts +12 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/types.d.ts +5 -5
- package/dist/_dts/theme-core/src/cards/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +21 -21
- package/dist/_dts/theme-core/src/schema.d.ts +18 -18
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +4 -4
- package/dist/_dts/theme-core/src/themeRuntime.d.ts +11 -0
- package/dist/{chunk-ER4UIW4X.mjs → chunk-AEOYWPE4.mjs} +91 -55
- package/dist/{chunk-O4LVYUVH.mjs → chunk-BOQXMCSP.mjs} +147 -101
- package/dist/{chunk-HVOBXA3Y.mjs → chunk-GSPFFUVB.mjs} +2 -2
- package/dist/{chunk-7KOO7RPP.mjs → chunk-PMBB6MQ7.mjs} +2273 -1113
- package/dist/{chunk-K3JWH6HE.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
- package/dist/{chunk-YDMBIIS5.mjs → chunk-UG7I7S7W.mjs} +1 -1
- package/dist/cli/index.mjs +1564 -546
- package/dist/cli/init-docs/content/cli-reference.md +6 -1
- package/dist/cli/init-docs/content/content-management.md +27 -0
- package/dist/client/{accordion-PT5CGW5N.mjs → accordion-GXQNWQ6O.mjs} +2 -2
- package/dist/client/{bookingForm-2HLRTEYS.mjs → bookingForm-STLUJ36H.mjs} +206 -335
- package/dist/client/bookings.mjs +821 -413
- package/dist/client/{carousel-Z2LKYSWA.mjs → carousel-CVRN6EPP.mjs} +4 -3
- package/dist/client/{cart-ND5IK4A6.mjs → cart-IYIBA5CL.mjs} +8 -8
- package/dist/client/{checkout-EYUSGAY7.mjs → checkout-O3BGM4GS.mjs} +8 -8
- package/dist/client/chunk-4RTFGHZN.mjs +433 -0
- package/dist/client/{chunk-DIRW2LNG.mjs → chunk-6DPXDOIL.mjs} +336 -225
- package/dist/client/chunk-6N7YRNYU.mjs +183 -0
- package/dist/client/{chunk-O5JNI3E4.mjs → chunk-7DH35FGA.mjs} +2 -2
- package/dist/client/{chunk-S4G65LGR.mjs → chunk-D3ETC2SU.mjs} +1 -1
- package/dist/client/{chunk-BAWHZ5GM.mjs → chunk-DAS5CIER.mjs} +460 -157
- package/dist/client/{chunk-6DVPO44G.mjs → chunk-FHU6PFPM.mjs} +1 -1
- package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
- package/dist/client/{chunk-BL66UWGD.mjs → chunk-MFPKS6QS.mjs} +13 -16
- package/dist/client/{chunk-X7GVFB7Y.mjs → chunk-NBFRJ5NB.mjs} +157 -5
- package/dist/client/{chunk-WCVK4MBJ.mjs → chunk-VFHZLZAC.mjs} +1 -1
- package/dist/client/{chunk-GOFO7HRH.mjs → chunk-WHZQDPBZ.mjs} +19 -1
- package/dist/client/{chunk-MHBEWDT7.mjs → chunk-Z62JYS5O.mjs} +122 -50
- package/dist/client/client.mjs +5979 -5198
- package/dist/client/{courseRegistration-H3AZBUEG.mjs → courseRegistration-2D3ACMJR.mjs} +20 -58
- package/dist/client/{eventCalendar-FPKJGLGS.mjs → eventCalendar-QY4UZUFF.mjs} +11 -11
- package/dist/client/{eventCombined-QCGIZBUY.mjs → eventCombined-RRCDKJC2.mjs} +11 -11
- package/dist/client/{eventDetails-HIT3BJWU.mjs → eventDetails-YO335BUT.mjs} +11 -11
- package/dist/client/{eventListing-R4HNWJDN.mjs → eventListing-PXA6GFQ3.mjs} +11 -11
- package/dist/client/{eventRegistration-Q7BYY5HF.mjs → eventRegistration-2ZHEDDXO.mjs} +11 -11
- package/dist/client/{form-NI6YOG6S.mjs → form-ZS6KX4U2.mjs} +7 -7
- package/dist/client/{headerSection-SDYGII36.mjs → headerSection-QK5SLIIB.mjs} +3 -3
- package/dist/client/hooks.mjs +1102 -1029
- package/dist/client/{locationMap-BDETEUQD.mjs → locationMap-GFNIUD2X.mjs} +3 -3
- package/dist/client/{newsletterForm-EKYIU67X.mjs → newsletterForm-PGLTTCUG.mjs} +61 -25
- package/dist/client/{productDetail-5UTGNN76.mjs → productDetail-OPBE5ZPI.mjs} +8 -8
- package/dist/client/{productList-7YA5KXZQ.mjs → productList-NI72Q62Z.mjs} +8 -8
- package/dist/client/rendering/client.mjs +4390 -4245
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +3327 -3181
- package/dist/client/{shop-AIMUMZYC.mjs → shop-3ZQPEWYI.mjs} +8 -8
- package/dist/client/spam-protection.mjs +4 -5
- package/dist/preview-next/before-render.mjs +20 -2
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +18 -0
- package/dist/{sdk-runtime-NW472WNT.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
- package/dist/server/components.mjs +2580 -2783
- package/dist/server/config-validation.mjs +1334 -1261
- package/dist/server/config.mjs +1334 -1261
- package/dist/server/data.mjs +1102 -1029
- package/dist/server/index.mjs +1097 -476
- package/dist/server/navigation.mjs +20 -30
- package/dist/server/next.mjs +3282 -2847
- package/dist/server/page-converter.mjs +1009 -946
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2580 -2783
- package/dist/server/rendering.mjs +2586 -2789
- package/dist/server/routing.mjs +1440 -1053
- package/dist/server/server.mjs +1886 -1153
- package/dist/server/theme-bridge.mjs +34 -5
- package/dist/styles/index.css +26 -0
- package/package.json +3 -2
- package/dist/SdkPreviewModeRuntime-ZALZDJEK.mjs +0 -8
- package/dist/client/chunk-H4MHEXYS.mjs +0 -184
- package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
- /package/dist/client/{chunk-LI2C6M5O.mjs → chunk-25W2EQUN.mjs} +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useRef, useEffect } from 'react';
|
|
3
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useRef, useEffect, createElement } from 'react';
|
|
4
3
|
|
|
5
4
|
// ../altcha/src/AltchaWidget.tsx
|
|
6
5
|
function AltchaWidget({
|
|
@@ -46,7 +45,7 @@ function AltchaWidget({
|
|
|
46
45
|
}
|
|
47
46
|
};
|
|
48
47
|
}, [challengeUrl, auto, hidelogo, className, onSolutionChange]);
|
|
49
|
-
return
|
|
48
|
+
return createElement("div", { ref: containerRef });
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
// ../altcha/src/client.ts
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { addPassToCommerceCart, useCommerceCart } from './chunk-
|
|
3
|
-
import { CarouselNodeClient } from './chunk-
|
|
4
|
-
import { useDiscountCodeUi } from './chunk-ZFHRN6W2.mjs';
|
|
2
|
+
import { addPassToCommerceCart, useCommerceCart } from './chunk-VFHZLZAC.mjs';
|
|
3
|
+
import { CarouselNodeClient } from './chunk-7DH35FGA.mjs';
|
|
5
4
|
import { buildRouteIslandApiConfig } from './chunk-L4J5Y62O.mjs';
|
|
6
|
-
import { createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, DiscountCodeDisclosure, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-
|
|
5
|
+
import { useDiscountCodeUi, createBodyThemePortalRoot, consumeSearchParams, scrollToBlock, TerminalPanel, StateIcon, CheckIcon, CrossIcon, ActionRow, DiscountCodeDisclosure, consumeSearchParam, buildCheckoutReturnUrls } from './chunk-NBFRJ5NB.mjs';
|
|
7
6
|
import { ModalShell, resolveDedicatedCheckoutPath } from './chunk-WBQG7VJA.mjs';
|
|
8
|
-
import { useBlockApi, FeedbackMessage, BlockApiProvider } from './chunk-
|
|
7
|
+
import { useBlockApi, FeedbackMessage, BlockApiProvider, discountAvailabilityHasDiscounts, discountAvailabilityAllowsManualEntry, getAutoAppliedDiscountPreview } from './chunk-WHZQDPBZ.mjs';
|
|
9
8
|
import { mountReactIsland } from './chunk-N7PBWBWQ.mjs';
|
|
10
|
-
import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, deriveCommerceCheckoutState, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay,
|
|
11
|
-
import { assertNever, ok, err, getCurrentResolveImageUrlContext, resolveImageUrlWithContext, ImagePresets } from './chunk-
|
|
9
|
+
import { themeButtonClassName, formatCommercePrice, formatInterval, getShopDisplayForItems, deriveCommerceCheckoutState, buildProductDetailDisplay, productItemKey, buildProductCartItem, buildProductCardDisplay, assertNever as assertNever$1, reportWorkflowError, clearWorkflowFeedback, unwrapRichTextRoot, createRichTextDocFromMarkdown, isRecord } from './chunk-6DPXDOIL.mjs';
|
|
10
|
+
import { assertNever, ok, err, getCurrentResolveImageUrlContext, resolveImageUrlWithContext, ImagePresets } from './chunk-25W2EQUN.mjs';
|
|
12
11
|
import * as React3 from 'react';
|
|
13
12
|
import React3__default, { useState, useRef, useCallback, useEffect } from 'react';
|
|
14
13
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -443,7 +442,7 @@ function shopCheckoutReducer(state, action) {
|
|
|
443
442
|
notice: action.notice
|
|
444
443
|
};
|
|
445
444
|
default:
|
|
446
|
-
return
|
|
445
|
+
return assertNever$1(action);
|
|
447
446
|
}
|
|
448
447
|
}
|
|
449
448
|
|
|
@@ -574,15 +573,13 @@ function planCartDiscountAvailabilityRequests(checkout) {
|
|
|
574
573
|
}));
|
|
575
574
|
}
|
|
576
575
|
function aggregateCartDiscountUiState(availability) {
|
|
577
|
-
if (!availability.some(
|
|
576
|
+
if (!availability.some(discountAvailabilityHasDiscounts)) {
|
|
578
577
|
return { type: "unavailable" };
|
|
579
578
|
}
|
|
580
|
-
if (availability.some(
|
|
579
|
+
if (availability.some(discountAvailabilityAllowsManualEntry)) {
|
|
581
580
|
return { type: "manual-allowed" };
|
|
582
581
|
}
|
|
583
|
-
const autoAppliedDiscount = availability.find(
|
|
584
|
-
(item) => item.autoAppliedDiscount
|
|
585
|
-
)?.autoAppliedDiscount ?? null;
|
|
582
|
+
const autoAppliedDiscount = availability.map(getAutoAppliedDiscountPreview).find((discount) => discount !== null) ?? null;
|
|
586
583
|
return {
|
|
587
584
|
type: "auto-only",
|
|
588
585
|
autoAppliedDiscount
|
|
@@ -681,7 +678,7 @@ function discountApplyReducer(state, action) {
|
|
|
681
678
|
status: { type: "idle" }
|
|
682
679
|
};
|
|
683
680
|
default:
|
|
684
|
-
return
|
|
681
|
+
return assertNever$1(action);
|
|
685
682
|
}
|
|
686
683
|
}
|
|
687
684
|
function getAppliedDiscountCode(state) {
|
|
@@ -712,7 +709,7 @@ function getDiscountApplyFeedback(status, formatPrice) {
|
|
|
712
709
|
message: status.message
|
|
713
710
|
};
|
|
714
711
|
default:
|
|
715
|
-
return
|
|
712
|
+
return assertNever$1(status);
|
|
716
713
|
}
|
|
717
714
|
}
|
|
718
715
|
var DISCOUNT_APPLY_MESSAGES = {
|
|
@@ -1283,7 +1280,7 @@ function shopPassesMembershipsReducer(state, action) {
|
|
|
1283
1280
|
returnNotice: null
|
|
1284
1281
|
};
|
|
1285
1282
|
default:
|
|
1286
|
-
return
|
|
1283
|
+
return assertNever$1(action);
|
|
1287
1284
|
}
|
|
1288
1285
|
}
|
|
1289
1286
|
function getOpenCheckout(state) {
|
|
@@ -1,9 +1,161 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
"use client";
|
|
2
|
+
import { FeedbackMessage, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, discountAvailabilityAllowsManualEntry } from './chunk-WHZQDPBZ.mjs';
|
|
3
|
+
import { themeButtonClassName } from './chunk-6DPXDOIL.mjs';
|
|
4
|
+
import { formatCurrencyAmount, clsx_default } from './chunk-25W2EQUN.mjs';
|
|
5
|
+
import { useReducer, useEffect, useId, useRef } from 'react';
|
|
5
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
7
|
|
|
8
|
+
// ../blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.state.ts
|
|
9
|
+
var initialDiscountCodeUiState = {
|
|
10
|
+
discountUiOpen: false,
|
|
11
|
+
discountCode: "",
|
|
12
|
+
availability: { tag: "disabled" }
|
|
13
|
+
};
|
|
14
|
+
function getDiscountContextKey(context) {
|
|
15
|
+
if (!context) return "disabled";
|
|
16
|
+
switch (context.type) {
|
|
17
|
+
case "event":
|
|
18
|
+
return [
|
|
19
|
+
context.type,
|
|
20
|
+
context.eventSeriesId,
|
|
21
|
+
context.eventCategoryId ?? "",
|
|
22
|
+
context.ticketsCount ?? ""
|
|
23
|
+
].join(":");
|
|
24
|
+
case "appointment":
|
|
25
|
+
return [context.type, context.serviceId].join(":");
|
|
26
|
+
case "course":
|
|
27
|
+
return [context.type, context.courseId].join(":");
|
|
28
|
+
case "pass":
|
|
29
|
+
return [context.type, context.passId].join(":");
|
|
30
|
+
case "membership":
|
|
31
|
+
return [context.type, context.membershipId].join(":");
|
|
32
|
+
case "product":
|
|
33
|
+
return [context.type, context.productId, context.productCategoryId ?? ""].join(":");
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function buildDiscountAvailabilityRequestPlan(options) {
|
|
37
|
+
if (!options.discountContext) {
|
|
38
|
+
return { ok: false, key: "disabled" };
|
|
39
|
+
}
|
|
40
|
+
const subtotalCents = options.subtotalCents;
|
|
41
|
+
const key = [
|
|
42
|
+
getDiscountContextKey(options.discountContext),
|
|
43
|
+
subtotalCents ?? ""
|
|
44
|
+
].join("|");
|
|
45
|
+
return {
|
|
46
|
+
ok: true,
|
|
47
|
+
key,
|
|
48
|
+
request: {
|
|
49
|
+
context: options.discountContext,
|
|
50
|
+
...subtotalCents !== void 0 ? { subtotalCents } : {}
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function discountAvailabilityStateFromResponse(response) {
|
|
55
|
+
if (!discountAvailabilityHasDiscounts(response)) {
|
|
56
|
+
return { tag: "unavailable" };
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
tag: "available",
|
|
60
|
+
manualCodeEntryAllowed: discountAvailabilityAllowsManualEntry(response),
|
|
61
|
+
autoAppliedDiscount: getAutoAppliedDiscountPreview(response)
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function discountCodeUiReducer(state, event) {
|
|
65
|
+
switch (event.type) {
|
|
66
|
+
case "availability-disabled":
|
|
67
|
+
return initialDiscountCodeUiState;
|
|
68
|
+
case "availability-loading":
|
|
69
|
+
return {
|
|
70
|
+
...state,
|
|
71
|
+
availability: { tag: "loading" }
|
|
72
|
+
};
|
|
73
|
+
case "availability-loaded": {
|
|
74
|
+
const availability = discountAvailabilityStateFromResponse(event.response);
|
|
75
|
+
if (availability.tag !== "available" || !availability.manualCodeEntryAllowed) {
|
|
76
|
+
return {
|
|
77
|
+
...state,
|
|
78
|
+
discountUiOpen: false,
|
|
79
|
+
discountCode: "",
|
|
80
|
+
availability
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
...state,
|
|
85
|
+
availability
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
case "availability-failed":
|
|
89
|
+
return {
|
|
90
|
+
...state,
|
|
91
|
+
discountUiOpen: false,
|
|
92
|
+
discountCode: "",
|
|
93
|
+
availability: { tag: "error" }
|
|
94
|
+
};
|
|
95
|
+
case "discount-code-changed":
|
|
96
|
+
return {
|
|
97
|
+
...state,
|
|
98
|
+
discountCode: event.code
|
|
99
|
+
};
|
|
100
|
+
case "discount-ui-open-changed":
|
|
101
|
+
return {
|
|
102
|
+
...state,
|
|
103
|
+
discountUiOpen: event.isOpen
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ../blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.ts
|
|
109
|
+
function useStableDiscountAvailabilityRequestPlan(options) {
|
|
110
|
+
const nextPlan = buildDiscountAvailabilityRequestPlan(options);
|
|
111
|
+
const planRef = useRef(nextPlan);
|
|
112
|
+
if (planRef.current.key !== nextPlan.key) {
|
|
113
|
+
planRef.current = nextPlan;
|
|
114
|
+
}
|
|
115
|
+
return planRef.current;
|
|
116
|
+
}
|
|
117
|
+
function useDiscountCodeUi(options) {
|
|
118
|
+
const [state, dispatch] = useReducer(
|
|
119
|
+
discountCodeUiReducer,
|
|
120
|
+
initialDiscountCodeUiState
|
|
121
|
+
);
|
|
122
|
+
const requestPlan = useStableDiscountAvailabilityRequestPlan(options);
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
let cancelled = false;
|
|
125
|
+
async function checkDiscountAvailability() {
|
|
126
|
+
if (!requestPlan.ok) {
|
|
127
|
+
dispatch({ type: "availability-disabled" });
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
dispatch({ type: "availability-loading" });
|
|
131
|
+
try {
|
|
132
|
+
const res = await options.api.getDiscountsAvailable(requestPlan.request);
|
|
133
|
+
if (cancelled) return;
|
|
134
|
+
dispatch({ type: "availability-loaded", response: res });
|
|
135
|
+
} catch {
|
|
136
|
+
if (cancelled) return;
|
|
137
|
+
dispatch({ type: "availability-failed" });
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
void checkDiscountAvailability();
|
|
141
|
+
return () => {
|
|
142
|
+
cancelled = true;
|
|
143
|
+
};
|
|
144
|
+
}, [options.api, requestPlan]);
|
|
145
|
+
const availability = state.availability;
|
|
146
|
+
const isAvailable = availability.tag === "available";
|
|
147
|
+
const manualCodeEntryAllowed = isAvailable ? availability.manualCodeEntryAllowed : false;
|
|
148
|
+
return {
|
|
149
|
+
discountUiOpen: state.discountUiOpen,
|
|
150
|
+
setDiscountUiOpen: (isOpen) => dispatch({ type: "discount-ui-open-changed", isOpen }),
|
|
151
|
+
discountCode: state.discountCode,
|
|
152
|
+
setDiscountCode: (code) => dispatch({ type: "discount-code-changed", code }),
|
|
153
|
+
discountsAvailable: isAvailable,
|
|
154
|
+
manualCodeEntryAllowed,
|
|
155
|
+
autoAppliedDiscount: isAvailable ? availability.autoAppliedDiscount : null,
|
|
156
|
+
discountsAvailableLoading: availability.tag === "loading"
|
|
157
|
+
};
|
|
158
|
+
}
|
|
7
159
|
var BLOCK_DISCOUNT_CODE_DISCLOSURE_CLASSES = {
|
|
8
160
|
"course-registration": {
|
|
9
161
|
root: "cr-discount",
|
|
@@ -504,4 +656,4 @@ function StepIndicator({
|
|
|
504
656
|
}) }) });
|
|
505
657
|
}
|
|
506
658
|
|
|
507
|
-
export { ActionRow, CheckIcon, ClockIcon, CrossIcon, DiscountCodeDisclosure, LoggedInAsUser, MembershipHero, StateIcon, StepIndicator, TabBarFragment, TerminalPanel, buildCheckoutReturnUrls, consumeSearchParam, consumeSearchParams, createBodyThemePortalRoot, formatPrice, getStepNumber, logoutPortal, scrollToBlock, validateFormData };
|
|
659
|
+
export { ActionRow, CheckIcon, ClockIcon, CrossIcon, DiscountCodeDisclosure, LoggedInAsUser, MembershipHero, StateIcon, StepIndicator, TabBarFragment, TerminalPanel, buildCheckoutReturnUrls, consumeSearchParam, consumeSearchParams, createBodyThemePortalRoot, formatPrice, getStepNumber, logoutPortal, scrollToBlock, useDiscountCodeUi, validateFormData };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-
|
|
1
|
+
import { EMPTY_COMMERCE_CART_STATE, parseStoredCommerceCartState, reduceCommerceCart, buildPassCartItem } from './chunk-6DPXDOIL.mjs';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
|
|
4
4
|
var EMPTY_STATE = EMPTY_COMMERCE_CART_STATE;
|
|
@@ -1159,6 +1159,24 @@ function useBlockApi() {
|
|
|
1159
1159
|
}
|
|
1160
1160
|
return client;
|
|
1161
1161
|
}
|
|
1162
|
+
|
|
1163
|
+
// ../blocks/src/system/runtime/api/types.ts
|
|
1164
|
+
function discountAvailabilityHasDiscounts(availability) {
|
|
1165
|
+
return availability.type !== "none";
|
|
1166
|
+
}
|
|
1167
|
+
function discountAvailabilityAllowsManualEntry(availability) {
|
|
1168
|
+
return "manualCodeEntryAllowed" in availability && availability.manualCodeEntryAllowed;
|
|
1169
|
+
}
|
|
1170
|
+
function getAutoAppliedDiscountPreview(availability) {
|
|
1171
|
+
switch (availability.type) {
|
|
1172
|
+
case "none":
|
|
1173
|
+
case "manual":
|
|
1174
|
+
return null;
|
|
1175
|
+
case "auto":
|
|
1176
|
+
case "auto_and_manual":
|
|
1177
|
+
return availability.autoAppliedDiscount;
|
|
1178
|
+
}
|
|
1179
|
+
}
|
|
1162
1180
|
function joinClasses(...parts) {
|
|
1163
1181
|
return parts.filter((part) => typeof part === "string" && part.length > 0).join(" ");
|
|
1164
1182
|
}
|
|
@@ -1189,4 +1207,4 @@ function FeedbackMessage({
|
|
|
1189
1207
|
);
|
|
1190
1208
|
}
|
|
1191
1209
|
|
|
1192
|
-
export {
|
|
1210
|
+
export { BlockApiProvider, FeedbackMessage, discountAvailabilityAllowsManualEntry, discountAvailabilityHasDiscounts, getAutoAppliedDiscountPreview, useBlockApi };
|
|
@@ -1,10 +1,46 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { useBlockApi
|
|
3
|
-
import { themeButtonClassName } from './chunk-
|
|
4
|
-
import { resolvePlanningDateInput, formatBookingPriceDisplay } from './chunk-
|
|
5
|
-
import { useState, useSyncExternalStore, useEffect } from 'react';
|
|
2
|
+
import { useBlockApi } from './chunk-WHZQDPBZ.mjs';
|
|
3
|
+
import { themeButtonClassName, assertNever } from './chunk-6DPXDOIL.mjs';
|
|
4
|
+
import { resolvePlanningDateInput, formatBookingPriceDisplay } from './chunk-25W2EQUN.mjs';
|
|
5
|
+
import { useState, useReducer, useSyncExternalStore, useEffect } from 'react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
7
|
|
|
8
|
+
// ../blocks/src/system/runtime/nodes/shared/MagicLinkForm.state.ts
|
|
9
|
+
var initialMagicLinkSubmissionState = Object.freeze({
|
|
10
|
+
tag: "idle"
|
|
11
|
+
});
|
|
12
|
+
function magicLinkSubmissionReducer(state, action) {
|
|
13
|
+
switch (action.type) {
|
|
14
|
+
case "submit-started":
|
|
15
|
+
if (state.tag === "submitting") {
|
|
16
|
+
return state;
|
|
17
|
+
}
|
|
18
|
+
return { tag: "submitting" };
|
|
19
|
+
case "submit-succeeded":
|
|
20
|
+
if (state.tag !== "submitting") {
|
|
21
|
+
return state;
|
|
22
|
+
}
|
|
23
|
+
return { tag: "success" };
|
|
24
|
+
case "submit-failed":
|
|
25
|
+
if (state.tag !== "submitting") {
|
|
26
|
+
return state;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
tag: "error",
|
|
30
|
+
message: action.message
|
|
31
|
+
};
|
|
32
|
+
case "reset":
|
|
33
|
+
return initialMagicLinkSubmissionState;
|
|
34
|
+
default:
|
|
35
|
+
return assertNever(action);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function isMagicLinkSubmitting(state) {
|
|
39
|
+
return state.tag === "submitting";
|
|
40
|
+
}
|
|
41
|
+
function getMagicLinkError(state) {
|
|
42
|
+
return state.tag === "error" ? state.message : null;
|
|
43
|
+
}
|
|
8
44
|
function MagicLinkForm({
|
|
9
45
|
initialEmail = "",
|
|
10
46
|
title,
|
|
@@ -17,36 +53,38 @@ function MagicLinkForm({
|
|
|
17
53
|
}) {
|
|
18
54
|
const api = useBlockApi();
|
|
19
55
|
const [email, setEmail] = useState(initialEmail);
|
|
20
|
-
const [
|
|
21
|
-
|
|
22
|
-
|
|
56
|
+
const [submissionState, dispatchSubmission] = useReducer(
|
|
57
|
+
magicLinkSubmissionReducer,
|
|
58
|
+
initialMagicLinkSubmissionState
|
|
59
|
+
);
|
|
60
|
+
const loading = isMagicLinkSubmitting(submissionState);
|
|
61
|
+
const error = getMagicLinkError(submissionState);
|
|
23
62
|
const handleSubmit = async (e) => {
|
|
24
63
|
e.preventDefault();
|
|
25
64
|
const normalizedEmail = email.trim().toLowerCase();
|
|
26
65
|
if (!normalizedEmail || loading) return;
|
|
27
|
-
|
|
28
|
-
setError(null);
|
|
66
|
+
dispatchSubmission({ type: "submit-started" });
|
|
29
67
|
try {
|
|
30
68
|
const redirectTo = `${window.location.pathname}${window.location.search}${window.location.hash}`;
|
|
31
69
|
await api.sendMagicLink({
|
|
32
70
|
email: normalizedEmail,
|
|
33
71
|
redirectUrl: `${window.location.origin}/api/portal/callback?redirect_to=${encodeURIComponent(redirectTo)}`
|
|
34
72
|
});
|
|
35
|
-
|
|
73
|
+
dispatchSubmission({ type: "submit-succeeded" });
|
|
36
74
|
onSuccess?.();
|
|
37
75
|
} catch (err) {
|
|
38
76
|
console.error("Magic link error:", err);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
77
|
+
dispatchSubmission({
|
|
78
|
+
type: "submit-failed",
|
|
79
|
+
message: getMagicLinkErrorMessage(err)
|
|
80
|
+
});
|
|
42
81
|
}
|
|
43
82
|
};
|
|
44
83
|
const handleReset = () => {
|
|
45
|
-
setSuccess(false);
|
|
46
84
|
setEmail("");
|
|
47
|
-
|
|
85
|
+
dispatchSubmission({ type: "reset" });
|
|
48
86
|
};
|
|
49
|
-
if (success) {
|
|
87
|
+
if (submissionState.tag === "success") {
|
|
50
88
|
return /* @__PURE__ */ jsxs("div", { className: `${classPrefix}-magic-link-success`, children: [
|
|
51
89
|
/* @__PURE__ */ jsx("p", { className: `${classPrefix}-portal-auth-text ${classPrefix}-portal-auth-text--success`, children: successMessage }),
|
|
52
90
|
!compact && /* @__PURE__ */ jsx(
|
|
@@ -88,6 +126,9 @@ function MagicLinkForm({
|
|
|
88
126
|
)
|
|
89
127
|
] });
|
|
90
128
|
}
|
|
129
|
+
function getMagicLinkErrorMessage(error) {
|
|
130
|
+
return error instanceof Error ? error.message : "Failed to send. Please try again.";
|
|
131
|
+
}
|
|
91
132
|
|
|
92
133
|
// ../blocks/src/system/blocks/courses/shared/pricing.ts
|
|
93
134
|
function isSaleWindowOpen(option, now) {
|
|
@@ -201,6 +242,54 @@ function formatCoursePriceAmount(amount, currency, locale) {
|
|
|
201
242
|
locale
|
|
202
243
|
);
|
|
203
244
|
}
|
|
245
|
+
|
|
246
|
+
// ../blocks/src/system/runtime/shared/useWaitlistClaim.state.ts
|
|
247
|
+
var DEFAULT_WAITLIST_CLAIM_ERROR = "Failed to resolve waitlist claim";
|
|
248
|
+
function createInitialWaitlistClaimState(hasToken) {
|
|
249
|
+
return hasToken ? { kind: "resolving" } : { kind: "idle" };
|
|
250
|
+
}
|
|
251
|
+
function waitlistClaimReducer(_state, action) {
|
|
252
|
+
switch (action.type) {
|
|
253
|
+
case "cleared":
|
|
254
|
+
return { kind: "idle" };
|
|
255
|
+
case "started":
|
|
256
|
+
return { kind: "resolving" };
|
|
257
|
+
case "resolved":
|
|
258
|
+
return { kind: "resolved", claim: action.claim };
|
|
259
|
+
case "failed":
|
|
260
|
+
return action.failure;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function toWaitlistClaimResolveFailure(error) {
|
|
264
|
+
const message = error instanceof Error ? error.message : DEFAULT_WAITLIST_CLAIM_ERROR;
|
|
265
|
+
if (isUnauthorizedBlockApiError(error)) {
|
|
266
|
+
return { kind: "portal-login-required", message };
|
|
267
|
+
}
|
|
268
|
+
return { kind: "error", message };
|
|
269
|
+
}
|
|
270
|
+
function isUnauthorizedBlockApiError(error) {
|
|
271
|
+
return error instanceof Error && error.name === "BlockApiError" && hasStatus(error) && error.status === 401;
|
|
272
|
+
}
|
|
273
|
+
function hasStatus(value) {
|
|
274
|
+
return typeof value === "object" && value !== null && "status" in value;
|
|
275
|
+
}
|
|
276
|
+
function getWaitlistClaim(state) {
|
|
277
|
+
return state.kind === "resolved" ? state.claim : null;
|
|
278
|
+
}
|
|
279
|
+
function getWaitlistClaimError(state) {
|
|
280
|
+
return state.kind === "error" ? state.message : null;
|
|
281
|
+
}
|
|
282
|
+
function getWaitlistClaimLoginMessage(state) {
|
|
283
|
+
return state.kind === "portal-login-required" ? state.message : null;
|
|
284
|
+
}
|
|
285
|
+
function requiresWaitlistClaimPortalLogin(state) {
|
|
286
|
+
return state.kind === "portal-login-required";
|
|
287
|
+
}
|
|
288
|
+
function isWaitlistClaimLoading(state) {
|
|
289
|
+
return state.kind === "resolving";
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
// ../blocks/src/system/runtime/shared/useWaitlistClaim.ts
|
|
204
293
|
var WAITLIST_CLAIM_LOCATION_EVENT = "riverbank:waitlist-claim-location-change";
|
|
205
294
|
var historyPatched = false;
|
|
206
295
|
function emitWaitlistClaimLocationChange() {
|
|
@@ -258,46 +347,29 @@ function useWaitlistClaim() {
|
|
|
258
347
|
getWaitlistClaimTokenSnapshot,
|
|
259
348
|
() => null
|
|
260
349
|
);
|
|
261
|
-
const [
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
350
|
+
const [state, dispatch] = useReducer(
|
|
351
|
+
waitlistClaimReducer,
|
|
352
|
+
Boolean(token),
|
|
353
|
+
createInitialWaitlistClaimState
|
|
354
|
+
);
|
|
266
355
|
useEffect(() => {
|
|
267
356
|
let cancelled = false;
|
|
268
357
|
async function resolveClaim() {
|
|
269
358
|
if (!token) {
|
|
270
|
-
|
|
271
|
-
setError(null);
|
|
272
|
-
setLoginMessage(null);
|
|
273
|
-
setRequiresPortalLogin(false);
|
|
274
|
-
setIsLoading(false);
|
|
359
|
+
dispatch({ type: "cleared" });
|
|
275
360
|
return;
|
|
276
361
|
}
|
|
277
|
-
|
|
278
|
-
setClaim(null);
|
|
279
|
-
setError(null);
|
|
280
|
-
setLoginMessage(null);
|
|
281
|
-
setRequiresPortalLogin(false);
|
|
362
|
+
dispatch({ type: "started" });
|
|
282
363
|
try {
|
|
283
364
|
const result = await api.resolveWaitlistClaim({ claimToken: token });
|
|
284
365
|
if (cancelled) return;
|
|
285
|
-
|
|
366
|
+
dispatch({ type: "resolved", claim: result });
|
|
286
367
|
} catch (claimError) {
|
|
287
368
|
if (cancelled) return;
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
setLoginMessage(message);
|
|
293
|
-
setError(null);
|
|
294
|
-
} else {
|
|
295
|
-
setError(message);
|
|
296
|
-
}
|
|
297
|
-
} finally {
|
|
298
|
-
if (!cancelled) {
|
|
299
|
-
setIsLoading(false);
|
|
300
|
-
}
|
|
369
|
+
dispatch({
|
|
370
|
+
type: "failed",
|
|
371
|
+
failure: toWaitlistClaimResolveFailure(claimError)
|
|
372
|
+
});
|
|
301
373
|
}
|
|
302
374
|
}
|
|
303
375
|
void resolveClaim();
|
|
@@ -307,11 +379,11 @@ function useWaitlistClaim() {
|
|
|
307
379
|
}, [api, token]);
|
|
308
380
|
return {
|
|
309
381
|
token,
|
|
310
|
-
claim,
|
|
311
|
-
error,
|
|
312
|
-
loginMessage,
|
|
313
|
-
requiresPortalLogin,
|
|
314
|
-
isLoading
|
|
382
|
+
claim: getWaitlistClaim(state),
|
|
383
|
+
error: getWaitlistClaimError(state),
|
|
384
|
+
loginMessage: getWaitlistClaimLoginMessage(state),
|
|
385
|
+
requiresPortalLogin: requiresWaitlistClaimPortalLogin(state),
|
|
386
|
+
isLoading: isWaitlistClaimLoading(state)
|
|
315
387
|
};
|
|
316
388
|
}
|
|
317
389
|
|