@amplifyup/sdk 0.1.69 → 0.1.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/react.d.mts CHANGED
@@ -43,6 +43,20 @@ interface AmplifyPageContentProps {
43
43
  */
44
44
  declare function AmplifyPageContent({ fallback, renderComponent, pageConfig: pageConfigProp, forceComposerPreview, previewLoadingComponent, previewEmptyComponent, loadingComponent, emptyComponent, errorComponent, }: AmplifyPageContentProps): react_jsx_runtime.JSX.Element | null;
45
45
 
46
+ /**
47
+ * True when the page is running inside AmplifyUp Composer.
48
+ *
49
+ * Safe to use for conditional render (e.g. expose a CSS-background image
50
+ * as a clickable `<Image>` only in Composer). First client render matches
51
+ * the server (`false`); detection runs after mount.
52
+ *
53
+ * @param force - When true (e.g. SSR already knows `?preview=true`), skip
54
+ * the post-mount flip and return true immediately.
55
+ */
56
+ declare function useInComposer(force?: boolean): boolean;
57
+ /** @deprecated Prefer `useInComposer`. Kept for internal AmplifyPageContent. */
58
+ declare function useComposerPreviewFlag(force?: boolean): boolean;
59
+
46
60
  declare function ComponentContextProvider({ children, slots, props, layoutNodeId, componentId, }: {
47
61
  children: ReactNode;
48
62
  slots?: Record<string, ReactNode>;
@@ -214,4 +228,4 @@ interface AmplifyUpProviderProps {
214
228
  declare function AmplifyUpProvider({ children, config, pageContext, }: AmplifyUpProviderProps): react_jsx_runtime.JSX.Element;
215
229
  declare function useAmplifyUp(): AmplifyUpContextType;
216
230
 
217
- export { AmplifyContentMeta, AmplifyPageContent, AmplifyUpProvider, ComponentContextProvider, ComposerLayoutStatusProvider, ComposerProvider, ContentSource, Field, Field$1 as FieldEnvelope, Image, LayoutComponentProps, MaybeComposerProvider, PageConfig, RichText, Slot, type SlotState, resolveSlotState, slotShowsAddComponent, slotStateFromEl, useAmplifyUp };
231
+ export { AmplifyContentMeta, AmplifyPageContent, AmplifyUpProvider, ComponentContextProvider, ComposerLayoutStatusProvider, ComposerProvider, ContentSource, Field, Field$1 as FieldEnvelope, Image, LayoutComponentProps, MaybeComposerProvider, PageConfig, RichText, Slot, type SlotState, resolveSlotState, slotShowsAddComponent, slotStateFromEl, useAmplifyUp, useComposerPreviewFlag, useInComposer };
package/dist/react.d.ts CHANGED
@@ -43,6 +43,20 @@ interface AmplifyPageContentProps {
43
43
  */
44
44
  declare function AmplifyPageContent({ fallback, renderComponent, pageConfig: pageConfigProp, forceComposerPreview, previewLoadingComponent, previewEmptyComponent, loadingComponent, emptyComponent, errorComponent, }: AmplifyPageContentProps): react_jsx_runtime.JSX.Element | null;
45
45
 
46
+ /**
47
+ * True when the page is running inside AmplifyUp Composer.
48
+ *
49
+ * Safe to use for conditional render (e.g. expose a CSS-background image
50
+ * as a clickable `<Image>` only in Composer). First client render matches
51
+ * the server (`false`); detection runs after mount.
52
+ *
53
+ * @param force - When true (e.g. SSR already knows `?preview=true`), skip
54
+ * the post-mount flip and return true immediately.
55
+ */
56
+ declare function useInComposer(force?: boolean): boolean;
57
+ /** @deprecated Prefer `useInComposer`. Kept for internal AmplifyPageContent. */
58
+ declare function useComposerPreviewFlag(force?: boolean): boolean;
59
+
46
60
  declare function ComponentContextProvider({ children, slots, props, layoutNodeId, componentId, }: {
47
61
  children: ReactNode;
48
62
  slots?: Record<string, ReactNode>;
@@ -214,4 +228,4 @@ interface AmplifyUpProviderProps {
214
228
  declare function AmplifyUpProvider({ children, config, pageContext, }: AmplifyUpProviderProps): react_jsx_runtime.JSX.Element;
215
229
  declare function useAmplifyUp(): AmplifyUpContextType;
216
230
 
217
- export { AmplifyContentMeta, AmplifyPageContent, AmplifyUpProvider, ComponentContextProvider, ComposerLayoutStatusProvider, ComposerProvider, ContentSource, Field, Field$1 as FieldEnvelope, Image, LayoutComponentProps, MaybeComposerProvider, PageConfig, RichText, Slot, type SlotState, resolveSlotState, slotShowsAddComponent, slotStateFromEl, useAmplifyUp };
231
+ export { AmplifyContentMeta, AmplifyPageContent, AmplifyUpProvider, ComponentContextProvider, ComposerLayoutStatusProvider, ComposerProvider, ContentSource, Field, Field$1 as FieldEnvelope, Image, LayoutComponentProps, MaybeComposerProvider, PageConfig, RichText, Slot, type SlotState, resolveSlotState, slotShowsAddComponent, slotStateFromEl, useAmplifyUp, useComposerPreviewFlag, useInComposer };
package/dist/react.js CHANGED
@@ -1515,33 +1515,11 @@ var AmplifyUpSDK = class {
1515
1515
  }
1516
1516
  }
1517
1517
  /**
1518
- * Detect if we're running in visual editor mode
1519
- * Returns true if:
1520
- * 1. Preview mode flag is set by proxy
1521
- * 2. We're in an iframe AND parent is from orchestrator domain
1522
- * 3. OR visualEditor/preview query parameter is present
1518
+ * Detect if we're running in visual editor mode.
1519
+ * Single source of truth: isComposerPreview() (flag, query, Composer referrer).
1523
1520
  */
1524
1521
  detectVisualEditorMode() {
1525
- if (typeof window === "undefined") return false;
1526
- if (window.__AMPLIFYUP_PREVIEW_MODE__ === true) {
1527
- return true;
1528
- }
1529
- const urlParams = new URLSearchParams(window.location.search);
1530
- if (urlParams.get("visualEditor") === "true" || urlParams.get("preview") === "true") {
1531
- return true;
1532
- }
1533
- const inIframe = window.self !== window.top;
1534
- if (!inIframe) return false;
1535
- try {
1536
- if (document.referrer) {
1537
- const referrerUrl = new URL(document.referrer);
1538
- if (referrerUrl.hostname === "localhost" && referrerUrl.port === "5001" || referrerUrl.pathname.includes("/dashboard/composer") || referrerUrl.pathname.includes("/dashboard/routes/")) {
1539
- return true;
1540
- }
1541
- }
1542
- } catch (e) {
1543
- }
1544
- return false;
1522
+ return isComposerPreview();
1545
1523
  }
1546
1524
  /**
1547
1525
  * Check if we're in preview/composer mode (should disable tracking)
@@ -3890,13 +3868,16 @@ function getSDK(adapter) {
3890
3868
  var trackContentView = (contentId, contentType, properties) => getSDK().trackContentView(contentId, contentType, properties);
3891
3869
  var refreshEventTracking = () => getSDK().refreshEventTracking();
3892
3870
  getSDK();
3893
- function useComposerPreviewFlag(force = false) {
3871
+ function useInComposer(force = false) {
3894
3872
  const [detected, setDetected] = React3.useState(false);
3895
3873
  React3.useEffect(() => {
3896
3874
  if (!force && isComposerPreview()) setDetected(true);
3897
3875
  }, [force]);
3898
3876
  return force || detected;
3899
3877
  }
3878
+ function useComposerPreviewFlag(force = false) {
3879
+ return useInComposer(force);
3880
+ }
3900
3881
 
3901
3882
  // src/composer-store.ts
3902
3883
  var ComposerFieldStore = class {
@@ -4185,26 +4166,7 @@ function AmplifyRendererInner({
4185
4166
  return () => window.clearTimeout(t);
4186
4167
  }, [variantCache, pageConfig?.id]);
4187
4168
  React3.useEffect(() => {
4188
- const isVisualEditorMode = () => {
4189
- if (typeof window === "undefined") return false;
4190
- const urlParams = new URLSearchParams(window.location.search);
4191
- if (urlParams.get("visualEditor") === "true" || urlParams.get("preview") === "true") {
4192
- return true;
4193
- }
4194
- const inIframe = window.self !== window.top;
4195
- if (!inIframe) return false;
4196
- try {
4197
- if (document.referrer) {
4198
- const referrerUrl = new URL(document.referrer);
4199
- if (referrerUrl.hostname === "localhost" && referrerUrl.port === "5001") {
4200
- return true;
4201
- }
4202
- }
4203
- } catch (e) {
4204
- }
4205
- return false;
4206
- };
4207
- if (!isVisualEditorMode()) {
4169
+ if (!isComposerPreview()) {
4208
4170
  return;
4209
4171
  }
4210
4172
  if (!pageConfig) {
@@ -5752,5 +5714,7 @@ exports.slotShowsAddComponent = slotShowsAddComponent;
5752
5714
  exports.slotStateFromEl = slotStateFromEl;
5753
5715
  exports.toFieldEnvelopes = toFieldEnvelopes;
5754
5716
  exports.useAmplifyUp = useAmplifyUp;
5717
+ exports.useComposerPreviewFlag = useComposerPreviewFlag;
5718
+ exports.useInComposer = useInComposer;
5755
5719
  //# sourceMappingURL=react.js.map
5756
5720
  //# sourceMappingURL=react.js.map