@riverbankcms/sdk 0.89.1 → 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-JDR64FEC.mjs → PreviewEditorSidebar-KVXNF3VW.mjs} +3 -3
- package/dist/{PreviewEditorUI-67TMJMAF.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/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/index.d.ts +6 -5
- 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/types.d.ts +3 -1
- 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/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 +17 -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/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/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/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/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 +7 -0
- package/dist/_dts/core/src/money-input.d.ts +18 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +50 -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/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/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/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-HKJQERFR.mjs → chunk-AEOYWPE4.mjs} +91 -55
- package/dist/{chunk-F645A5UV.mjs → chunk-BOQXMCSP.mjs} +129 -101
- package/dist/{chunk-ZQRBLCW5.mjs → chunk-GSPFFUVB.mjs} +2 -2
- package/dist/{chunk-7YUAXONX.mjs → chunk-PMBB6MQ7.mjs} +1280 -774
- package/dist/{chunk-TGBJWKMP.mjs → chunk-RQ3XZ4SJ.mjs} +9 -1
- package/dist/{chunk-7N46MZHI.mjs → chunk-UG7I7S7W.mjs} +1 -1
- package/dist/cli/index.mjs +899 -531
- 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-MUCVNGQ7.mjs → accordion-GXQNWQ6O.mjs} +1 -1
- package/dist/client/{bookingForm-PKD6EFIE.mjs → bookingForm-STLUJ36H.mjs} +25 -270
- package/dist/client/bookings.mjs +432 -269
- package/dist/client/{carousel-3TKQSNJC.mjs → carousel-CVRN6EPP.mjs} +1 -1
- package/dist/client/{cart-6XHSZK23.mjs → cart-IYIBA5CL.mjs} +5 -6
- package/dist/client/{checkout-FVSPM6FI.mjs → checkout-O3BGM4GS.mjs} +5 -6
- package/dist/client/chunk-4RTFGHZN.mjs +433 -0
- package/dist/client/{chunk-UQFY4AHX.mjs → chunk-6DPXDOIL.mjs} +65 -28
- package/dist/client/{chunk-ZT5XE7FK.mjs → chunk-D3ETC2SU.mjs} +1 -1
- package/dist/client/{chunk-CQKKFEQD.mjs → chunk-DAS5CIER.mjs} +274 -105
- package/dist/client/{chunk-SDIYSQAY.mjs → chunk-HIHOQGIP.mjs} +2 -3
- package/dist/client/{chunk-ZJZZA5EP.mjs → chunk-MFPKS6QS.mjs} +11 -14
- package/dist/client/{chunk-EY42X22F.mjs → chunk-NBFRJ5NB.mjs} +156 -4
- package/dist/client/{chunk-VGLXACVK.mjs → chunk-VFHZLZAC.mjs} +1 -1
- package/dist/client/{chunk-STJ2NCQM.mjs → chunk-WHZQDPBZ.mjs} +19 -1
- package/dist/client/{chunk-RSQWWUAD.mjs → chunk-Z62JYS5O.mjs} +3 -3
- package/dist/client/client.mjs +3292 -2827
- package/dist/client/{courseRegistration-ATZSYDHM.mjs → courseRegistration-2D3ACMJR.mjs} +18 -56
- package/dist/client/{eventCalendar-6T2UGKKP.mjs → eventCalendar-QY4UZUFF.mjs} +8 -9
- package/dist/client/{eventCombined-Q4VANXVF.mjs → eventCombined-RRCDKJC2.mjs} +8 -9
- package/dist/client/{eventDetails-DW37E7VW.mjs → eventDetails-YO335BUT.mjs} +8 -9
- package/dist/client/{eventListing-XURTSAUW.mjs → eventListing-PXA6GFQ3.mjs} +8 -9
- package/dist/client/{eventRegistration-MRKEVAXW.mjs → eventRegistration-2ZHEDDXO.mjs} +8 -9
- package/dist/client/{form-WZZFFGMU.mjs → form-ZS6KX4U2.mjs} +6 -6
- package/dist/client/{headerSection-EQYVQBLM.mjs → headerSection-QK5SLIIB.mjs} +2 -2
- package/dist/client/hooks.mjs +1084 -1029
- package/dist/client/{locationMap-MFF5VAZR.mjs → locationMap-GFNIUD2X.mjs} +2 -2
- package/dist/client/{newsletterForm-JQ77UYIE.mjs → newsletterForm-PGLTTCUG.mjs} +4 -4
- package/dist/client/{productDetail-25LMT3IZ.mjs → productDetail-OPBE5ZPI.mjs} +5 -6
- package/dist/client/{productList-5ABEMKUG.mjs → productList-NI72Q62Z.mjs} +5 -6
- package/dist/client/rendering/client.mjs +2692 -2285
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +2611 -2156
- package/dist/client/{shop-OMMQZ6YO.mjs → shop-3ZQPEWYI.mjs} +5 -6
- package/dist/client/spam-protection.mjs +4 -5
- package/dist/preview-next/before-render.mjs +2 -2
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/{sdk-runtime-WNLBZ3ZH.mjs → sdk-runtime-FSHXCWDS.mjs} +6 -6
- package/dist/server/components.mjs +1722 -1453
- package/dist/server/config-validation.mjs +1316 -1261
- package/dist/server/config.mjs +1316 -1261
- package/dist/server/data.mjs +1084 -1029
- package/dist/server/index.mjs +135 -100
- package/dist/server/navigation.mjs +20 -30
- package/dist/server/next.mjs +1782 -1500
- package/dist/server/page-converter.mjs +1009 -946
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +1722 -1453
- package/dist/server/rendering.mjs +1728 -1459
- package/dist/server/routing.mjs +1127 -1045
- package/dist/server/server.mjs +1219 -1129
- package/dist/server/theme-bridge.mjs +8 -5
- package/package.json +2 -2
- package/dist/SdkPreviewModeRuntime-ZBEMRV7N.mjs +0 -8
- package/dist/client/chunk-LQFDYWPJ.mjs +0 -184
- package/dist/client/chunk-ZFHRN6W2.mjs +0 -66
|
@@ -18944,12 +18944,15 @@ import { jsx as jsx2 } from "react/jsx-runtime";
|
|
|
18944
18944
|
import * as React from "react";
|
|
18945
18945
|
import { Fragment, jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
18946
18946
|
|
|
18947
|
+
// ../theme-core/src/ResponsiveScope.tsx
|
|
18948
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
18949
|
+
|
|
18947
18950
|
// ../theme-core/src/siteChromeOverlayClearance.ts
|
|
18948
18951
|
var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
18949
18952
|
var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
|
|
18950
18953
|
|
|
18951
18954
|
// ../theme-core/src/siteChrome.tsx
|
|
18952
|
-
import { Fragment as Fragment2, jsx as
|
|
18955
|
+
import { Fragment as Fragment2, jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
18953
18956
|
|
|
18954
18957
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
18955
18958
|
import { z as z20 } from "zod";
|
|
@@ -19578,10 +19581,10 @@ function buildBridgeGeneratorTheme(corners2) {
|
|
|
19578
19581
|
}
|
|
19579
19582
|
|
|
19580
19583
|
// ../theme-core/src/mock-themes/components/swatch.tsx
|
|
19581
|
-
import { jsx as
|
|
19584
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
19582
19585
|
|
|
19583
19586
|
// ../theme-core/src/mock-themes/components/PaletteCard.tsx
|
|
19584
|
-
import { jsx as
|
|
19587
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
19585
19588
|
|
|
19586
19589
|
// src/theme-bridge/generateCssVars.ts
|
|
19587
19590
|
function generateThemeBridgeCss(config) {
|
|
@@ -19609,7 +19612,7 @@ ${cssLines}
|
|
|
19609
19612
|
}
|
|
19610
19613
|
|
|
19611
19614
|
// src/theme-bridge/ThemeBridgeProvider.tsx
|
|
19612
|
-
import { jsx as
|
|
19615
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
19613
19616
|
function ThemeBridgeProvider({
|
|
19614
19617
|
config,
|
|
19615
19618
|
children,
|
|
@@ -19620,7 +19623,7 @@ function ThemeBridgeProvider({
|
|
|
19620
19623
|
[config]
|
|
19621
19624
|
);
|
|
19622
19625
|
const cssVarsStyle = runtime.cssVars;
|
|
19623
|
-
return /* @__PURE__ */
|
|
19626
|
+
return /* @__PURE__ */ jsx8(
|
|
19624
19627
|
ThemeScopeCore,
|
|
19625
19628
|
{
|
|
19626
19629
|
cssVars: cssVarsStyle,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@riverbankcms/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.90.0",
|
|
4
4
|
"description": "Riverbank CMS SDK for headless content consumption",
|
|
5
5
|
"main": "./dist/server/index.mjs",
|
|
6
6
|
"module": "./dist/server/index.mjs",
|
|
@@ -226,7 +226,7 @@
|
|
|
226
226
|
"check:declaration-hygiene": "node scripts/check-declaration-hygiene.mjs",
|
|
227
227
|
"check:packed-exports": "node scripts/check-packed-exports.mjs",
|
|
228
228
|
"measure:public-bundles": "node scripts/measure-public-bundles.mjs --pretty",
|
|
229
|
-
"lint": "
|
|
229
|
+
"lint": "node ../../scripts/run-package-lint.mjs src",
|
|
230
230
|
"test": "vitest run",
|
|
231
231
|
"test:edge-smoke": "sh -c \"cd src/next/__fixtures__/edge-theme-smoke && mkdir -p node_modules/@riverbankcms && ln -sfn ../../../../../.. node_modules/@riverbankcms/sdk && NEXT_TELEMETRY_DISABLED=1 next build\"",
|
|
232
232
|
"test:preview-client-smoke": "node scripts/preview-client-smoke.mjs",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
export { SdkPreviewModeRuntime } from './chunk-HKJQERFR.mjs';
|
|
3
|
-
import './chunk-7N46MZHI.mjs';
|
|
4
|
-
import './chunk-TGBJWKMP.mjs';
|
|
5
|
-
import './chunk-ZQRBLCW5.mjs';
|
|
6
|
-
import './chunk-7YUAXONX.mjs';
|
|
7
|
-
import './chunk-F645A5UV.mjs';
|
|
8
|
-
import './chunk-R7POPVJR.mjs';
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { assertNever11 } from './chunk-UQFY4AHX.mjs';
|
|
3
|
-
import { useReducer, useRef, useCallback, useEffect } from 'react';
|
|
4
|
-
|
|
5
|
-
// ../blocks/src/system/runtime/hooks/usePolling.state.ts
|
|
6
|
-
function createInitialPollingState() {
|
|
7
|
-
return {
|
|
8
|
-
tag: "idle",
|
|
9
|
-
result: null,
|
|
10
|
-
error: null
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
function pollingReducer(state, action) {
|
|
14
|
-
switch (action.type) {
|
|
15
|
-
case "polling-went-idle":
|
|
16
|
-
return createInitialPollingState();
|
|
17
|
-
case "polling-reset":
|
|
18
|
-
return {
|
|
19
|
-
tag: "polling",
|
|
20
|
-
result: null,
|
|
21
|
-
error: null
|
|
22
|
-
};
|
|
23
|
-
case "polling-progressed":
|
|
24
|
-
return {
|
|
25
|
-
tag: "polling",
|
|
26
|
-
result: action.result,
|
|
27
|
-
error: null
|
|
28
|
-
};
|
|
29
|
-
case "polling-completed":
|
|
30
|
-
return {
|
|
31
|
-
tag: "completed",
|
|
32
|
-
result: action.result,
|
|
33
|
-
error: null
|
|
34
|
-
};
|
|
35
|
-
case "polling-failed":
|
|
36
|
-
return {
|
|
37
|
-
tag: "failed",
|
|
38
|
-
result: action.result,
|
|
39
|
-
error: null
|
|
40
|
-
};
|
|
41
|
-
case "polling-request-failed":
|
|
42
|
-
switch (state.tag) {
|
|
43
|
-
case "idle":
|
|
44
|
-
return {
|
|
45
|
-
tag: "polling",
|
|
46
|
-
result: null,
|
|
47
|
-
error: action.error
|
|
48
|
-
};
|
|
49
|
-
case "polling":
|
|
50
|
-
return {
|
|
51
|
-
tag: "polling",
|
|
52
|
-
result: state.result,
|
|
53
|
-
error: action.error
|
|
54
|
-
};
|
|
55
|
-
case "completed":
|
|
56
|
-
case "failed":
|
|
57
|
-
case "timeout":
|
|
58
|
-
return state;
|
|
59
|
-
default:
|
|
60
|
-
return assertNever11(state);
|
|
61
|
-
}
|
|
62
|
-
case "polling-timed-out":
|
|
63
|
-
return {
|
|
64
|
-
tag: "timeout",
|
|
65
|
-
result: state.result,
|
|
66
|
-
error: new Error("Polling timed out")
|
|
67
|
-
};
|
|
68
|
-
default:
|
|
69
|
-
return assertNever11(action);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
// ../blocks/src/system/runtime/hooks/usePolling.ts
|
|
74
|
-
var DEFAULT_MAX_ATTEMPTS = 10;
|
|
75
|
-
var DEFAULT_POLL_INTERVAL = 1e3;
|
|
76
|
-
function usePolling(config) {
|
|
77
|
-
const [state, dispatch] = useReducer(
|
|
78
|
-
pollingReducer,
|
|
79
|
-
void 0,
|
|
80
|
-
createInitialPollingState
|
|
81
|
-
);
|
|
82
|
-
const attemptsRef = useRef(0);
|
|
83
|
-
const timeoutRef = useRef(null);
|
|
84
|
-
const isPollingRef = useRef(false);
|
|
85
|
-
const isActiveRef = useRef(false);
|
|
86
|
-
const generationRef = useRef(0);
|
|
87
|
-
const configRef = useRef(config);
|
|
88
|
-
configRef.current = config;
|
|
89
|
-
const cleanup = useCallback(() => {
|
|
90
|
-
isActiveRef.current = false;
|
|
91
|
-
generationRef.current += 1;
|
|
92
|
-
if (timeoutRef.current) {
|
|
93
|
-
clearTimeout(timeoutRef.current);
|
|
94
|
-
timeoutRef.current = null;
|
|
95
|
-
}
|
|
96
|
-
isPollingRef.current = false;
|
|
97
|
-
}, []);
|
|
98
|
-
const resetState = useCallback(() => {
|
|
99
|
-
dispatch({ type: "polling-reset" });
|
|
100
|
-
attemptsRef.current = 0;
|
|
101
|
-
}, []);
|
|
102
|
-
const poll = useCallback(async () => {
|
|
103
|
-
const cfg = configRef.current;
|
|
104
|
-
if (!cfg) return true;
|
|
105
|
-
if (isPollingRef.current) return false;
|
|
106
|
-
const maxAttempts = cfg.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;
|
|
107
|
-
if (attemptsRef.current >= maxAttempts) {
|
|
108
|
-
dispatch({ type: "polling-timed-out" });
|
|
109
|
-
cleanup();
|
|
110
|
-
return true;
|
|
111
|
-
}
|
|
112
|
-
isPollingRef.current = true;
|
|
113
|
-
attemptsRef.current += 1;
|
|
114
|
-
const generation = generationRef.current;
|
|
115
|
-
try {
|
|
116
|
-
const data = await cfg.pollFn();
|
|
117
|
-
if (generation !== generationRef.current || !isActiveRef.current) {
|
|
118
|
-
isPollingRef.current = false;
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
if (cfg.isFailed?.(data)) {
|
|
122
|
-
dispatch({ type: "polling-failed", result: data });
|
|
123
|
-
cleanup();
|
|
124
|
-
return true;
|
|
125
|
-
}
|
|
126
|
-
if (cfg.isComplete(data)) {
|
|
127
|
-
dispatch({ type: "polling-completed", result: data });
|
|
128
|
-
cleanup();
|
|
129
|
-
return true;
|
|
130
|
-
}
|
|
131
|
-
dispatch({ type: "polling-progressed", result: data });
|
|
132
|
-
isPollingRef.current = false;
|
|
133
|
-
return false;
|
|
134
|
-
} catch (err) {
|
|
135
|
-
if (generation !== generationRef.current || !isActiveRef.current) {
|
|
136
|
-
isPollingRef.current = false;
|
|
137
|
-
return true;
|
|
138
|
-
}
|
|
139
|
-
if (err instanceof Error) {
|
|
140
|
-
dispatch({ type: "polling-request-failed", error: err });
|
|
141
|
-
}
|
|
142
|
-
isPollingRef.current = false;
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
}, [cleanup]);
|
|
146
|
-
const schedulePoll = useCallback(() => {
|
|
147
|
-
if (!isActiveRef.current) return;
|
|
148
|
-
const cfg = configRef.current;
|
|
149
|
-
const pollInterval = cfg?.interval ?? DEFAULT_POLL_INTERVAL;
|
|
150
|
-
const doPoll = async () => {
|
|
151
|
-
const shouldStop = await poll();
|
|
152
|
-
if (!shouldStop && isActiveRef.current) {
|
|
153
|
-
timeoutRef.current = setTimeout(doPoll, pollInterval);
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
void doPoll();
|
|
157
|
-
}, [poll]);
|
|
158
|
-
useEffect(() => {
|
|
159
|
-
if (!config) {
|
|
160
|
-
cleanup();
|
|
161
|
-
dispatch({ type: "polling-went-idle" });
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
resetState();
|
|
165
|
-
isActiveRef.current = true;
|
|
166
|
-
schedulePoll();
|
|
167
|
-
return cleanup;
|
|
168
|
-
}, [config, cleanup, resetState, schedulePoll]);
|
|
169
|
-
const retry = useCallback(() => {
|
|
170
|
-
if (!configRef.current) return;
|
|
171
|
-
cleanup();
|
|
172
|
-
resetState();
|
|
173
|
-
isActiveRef.current = true;
|
|
174
|
-
schedulePoll();
|
|
175
|
-
}, [cleanup, resetState, schedulePoll]);
|
|
176
|
-
return {
|
|
177
|
-
status: config ? state.tag : "idle",
|
|
178
|
-
result: config ? state.result : null,
|
|
179
|
-
error: config ? state.error : null,
|
|
180
|
-
retry
|
|
181
|
-
};
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
export { usePolling };
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useState, useEffect } from 'react';
|
|
3
|
-
|
|
4
|
-
// ../blocks/src/system/runtime/nodes/event-registration/useDiscountCodeUi.ts
|
|
5
|
-
function useDiscountCodeUi(options) {
|
|
6
|
-
const [discountUiOpen, setDiscountUiOpen] = useState(false);
|
|
7
|
-
const [discountCode, setDiscountCode] = useState("");
|
|
8
|
-
const [discountsAvailable, setDiscountsAvailable] = useState(false);
|
|
9
|
-
const [manualCodeEntryAllowed, setManualCodeEntryAllowed] = useState(false);
|
|
10
|
-
const [autoAppliedDiscount, setAutoAppliedDiscount] = useState(null);
|
|
11
|
-
const [discountsAvailableLoading, setDiscountsAvailableLoading] = useState(false);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
let cancelled = false;
|
|
14
|
-
async function checkDiscountAvailability() {
|
|
15
|
-
if (!options.discountContext) {
|
|
16
|
-
setDiscountsAvailable(false);
|
|
17
|
-
setManualCodeEntryAllowed(false);
|
|
18
|
-
setAutoAppliedDiscount(null);
|
|
19
|
-
setDiscountsAvailableLoading(false);
|
|
20
|
-
setDiscountUiOpen(false);
|
|
21
|
-
setDiscountCode("");
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
setDiscountsAvailableLoading(true);
|
|
25
|
-
try {
|
|
26
|
-
const res = await options.api.getDiscountsAvailable({
|
|
27
|
-
context: options.discountContext,
|
|
28
|
-
subtotalCents: options.subtotalCents
|
|
29
|
-
});
|
|
30
|
-
if (cancelled) return;
|
|
31
|
-
setDiscountsAvailable(res.hasDiscounts);
|
|
32
|
-
setManualCodeEntryAllowed(res.manualCodeEntryAllowed);
|
|
33
|
-
setAutoAppliedDiscount(res.autoAppliedDiscount);
|
|
34
|
-
if (!res.hasDiscounts || !res.manualCodeEntryAllowed) {
|
|
35
|
-
setDiscountUiOpen(false);
|
|
36
|
-
setDiscountCode("");
|
|
37
|
-
}
|
|
38
|
-
} catch {
|
|
39
|
-
if (cancelled) return;
|
|
40
|
-
setDiscountsAvailable(false);
|
|
41
|
-
setManualCodeEntryAllowed(false);
|
|
42
|
-
setAutoAppliedDiscount(null);
|
|
43
|
-
setDiscountUiOpen(false);
|
|
44
|
-
setDiscountCode("");
|
|
45
|
-
} finally {
|
|
46
|
-
if (!cancelled) setDiscountsAvailableLoading(false);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
void checkDiscountAvailability();
|
|
50
|
-
return () => {
|
|
51
|
-
cancelled = true;
|
|
52
|
-
};
|
|
53
|
-
}, [options.api, options.discountContext, options.subtotalCents]);
|
|
54
|
-
return {
|
|
55
|
-
discountUiOpen,
|
|
56
|
-
setDiscountUiOpen,
|
|
57
|
-
discountCode,
|
|
58
|
-
setDiscountCode,
|
|
59
|
-
discountsAvailable,
|
|
60
|
-
manualCodeEntryAllowed,
|
|
61
|
-
autoAppliedDiscount,
|
|
62
|
-
discountsAvailableLoading
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export { useDiscountCodeUi };
|