@sitecore-jss/sitecore-jss-nextjs 22.1.0-canary.40 → 22.1.0-canary.42

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.
@@ -45,13 +45,17 @@ const sitecore_jss_react_1 = require("@sitecore-jss/sitecore-jss-react");
45
45
  exports.Link = (0, react_1.forwardRef)((props, ref) => {
46
46
  const { field, editable = true, children, internalLinkMatcher = /^\//g, showLinkTextWithChildrenPresent } = props, htmlLinkProps = __rest(props, ["field", "editable", "children", "internalLinkMatcher", "showLinkTextWithChildrenPresent"]);
47
47
  if (!field ||
48
- (!field.editable && !field.value && !field.href)) {
48
+ (!field.editable &&
49
+ !field.value &&
50
+ !field.href &&
51
+ !field.metadata)) {
49
52
  return null;
50
53
  }
51
54
  const value = (field.href
52
55
  ? field
53
56
  : field.value);
54
- const { href, querystring, anchor } = value;
57
+ // fallback to {} if value is undefined; could happen if field is LinkFieldValue, href is empty in metadata mode
58
+ const { href, querystring, anchor } = value || {};
55
59
  const isEditing = editable && (field.editable || field.metadata);
56
60
  if (href && !isEditing) {
57
61
  const text = showLinkTextWithChildrenPresent || !children ? value.text || value.href : null;
@@ -20,7 +20,10 @@ const prop_types_1 = __importDefault(require("prop-types"));
20
20
  const react_1 = __importDefault(require("react"));
21
21
  const sitecore_jss_react_1 = require("@sitecore-jss/sitecore-jss-react");
22
22
  const image_1 = __importDefault(require("next/image"));
23
- exports.NextImage = (0, sitecore_jss_react_1.withFieldMetadata)((_a) => {
23
+ const sitecore_jss_react_2 = require("@sitecore-jss/sitecore-jss-react");
24
+ const sitecore_jss_react_3 = require("@sitecore-jss/sitecore-jss-react");
25
+ const layout_1 = require("@sitecore-jss/sitecore-jss/layout");
26
+ exports.NextImage = (0, sitecore_jss_react_1.withFieldMetadata)((0, sitecore_jss_react_2.withEmptyFieldEditingComponent)((_a) => {
24
27
  var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
25
28
  // next handles src and we use a custom loader,
26
29
  // throw error if these are present
@@ -28,8 +31,7 @@ exports.NextImage = (0, sitecore_jss_react_1.withFieldMetadata)((_a) => {
28
31
  throw new Error('Detected src prop. If you wish to use src, use next/image directly.');
29
32
  }
30
33
  const dynamicMedia = field;
31
- if (!field ||
32
- (!dynamicMedia.editable && !dynamicMedia.value && !dynamicMedia.src)) {
34
+ if (!field || (!dynamicMedia.editable && (0, layout_1.isFieldValueEmpty)(dynamicMedia))) {
33
35
  return null;
34
36
  }
35
37
  const imageField = dynamicMedia;
@@ -59,7 +61,7 @@ exports.NextImage = (0, sitecore_jss_react_1.withFieldMetadata)((_a) => {
59
61
  return react_1.default.createElement(image_1.default, Object.assign({ alt: "" }, imageProps));
60
62
  }
61
63
  return null; // we can't handle the truth
62
- });
64
+ }, { defaultEmptyFieldEditingComponent: sitecore_jss_react_3.DefaultEmptyFieldEditingComponentImage }));
63
65
  exports.NextImage.propTypes = {
64
66
  field: prop_types_1.default.oneOfType([
65
67
  prop_types_1.default.shape({
@@ -73,5 +75,9 @@ exports.NextImage.propTypes = {
73
75
  editable: prop_types_1.default.bool,
74
76
  mediaUrlPrefix: prop_types_1.default.instanceOf(RegExp),
75
77
  imageParams: prop_types_1.default.objectOf(prop_types_1.default.oneOfType([prop_types_1.default.number.isRequired, prop_types_1.default.string.isRequired]).isRequired),
78
+ emptyFieldEditingComponent: prop_types_1.default.oneOfType([
79
+ prop_types_1.default.object,
80
+ prop_types_1.default.func,
81
+ ]),
76
82
  };
77
83
  exports.NextImage.displayName = 'NextImage';
@@ -46,7 +46,7 @@ const prefetched = {};
46
46
  const RichText = (props) => {
47
47
  const { internalLinksSelector = 'a[href^="/"]', prefetchLinks = true, editable = true } = props, rest = __rest(props, ["internalLinksSelector", "prefetchLinks", "editable"]);
48
48
  const hasText = props.field && props.field.value;
49
- const isEditing = editable && props.field && props.field.editable;
49
+ const isEditing = editable && props.field && (props.field.editable || props.field.metadata);
50
50
  const router = (0, router_1.useRouter)();
51
51
  const richTextRef = (0, react_1.useRef)(null);
52
52
  (0, react_1.useEffect)(() => {
@@ -78,7 +78,7 @@ const RichText = (props) => {
78
78
  link.addEventListener('click', routeHandler, false);
79
79
  });
80
80
  };
81
- return react_1.default.createElement(sitecore_jss_react_1.RichText, Object.assign({ ref: richTextRef }, rest));
81
+ return react_1.default.createElement(sitecore_jss_react_1.RichText, Object.assign({ ref: richTextRef, editable: editable }, rest));
82
82
  };
83
83
  exports.RichText = RichText;
84
84
  exports.RichText.propTypes = Object.assign({ internalLinksSelector: prop_types_1.default.string }, sitecore_jss_react_1.RichTextPropTypes);
@@ -18,6 +18,7 @@ const constants_2 = require("./constants");
18
18
  const utils_1 = require("../utils/utils");
19
19
  const render_middleware_1 = require("./render-middleware");
20
20
  const utils_2 = require("@sitecore-jss/sitecore-jss/utils");
21
+ const personalize_1 = require("@sitecore-jss/sitecore-jss/personalize");
21
22
  /**
22
23
  * Handler for the Editing Chromes POST requests.
23
24
  * This handler is responsible for rendering the page and returning the HTML content that is provided via request.
@@ -193,15 +194,13 @@ class MetadataHandler {
193
194
  this.config = config;
194
195
  }
195
196
  render(req, res) {
196
- var _a, _b;
197
+ var _a, _b, _c;
197
198
  const { query } = req;
198
199
  const startTimestamp = Date.now();
199
200
  const requiredQueryParams = [
200
201
  'sc_site',
201
202
  'sc_itemid',
202
203
  'sc_lang',
203
- 'sc_variant',
204
- 'sc_version',
205
204
  'route',
206
205
  'mode',
207
206
  ];
@@ -218,7 +217,7 @@ class MetadataHandler {
218
217
  itemId: query.sc_itemid,
219
218
  language: query.sc_lang,
220
219
  // sc_variant is an array in the query params, but we only need the first value
221
- variantId: query.sc_variant.split(',')[0],
220
+ variantId: ((_a = query.sc_variant) === null || _a === void 0 ? void 0 : _a.split(',')[0]) || personalize_1.DEFAULT_VARIANT,
222
221
  version: query.sc_version,
223
222
  editMode: layout_1.EditMode.Metadata,
224
223
  pageState: query.mode,
@@ -228,7 +227,7 @@ class MetadataHandler {
228
227
  path: query.route,
229
228
  maxAge: 3,
230
229
  });
231
- const route = ((_b = (_a = this.config).resolvePageUrl) === null || _b === void 0 ? void 0 : _b.call(_a, {
230
+ const route = ((_c = (_b = this.config).resolvePageUrl) === null || _c === void 0 ? void 0 : _c.call(_b, {
232
231
  itemPath: query.route,
233
232
  })) || query.route;
234
233
  sitecore_jss_1.debug.editing('editing render middleware end in %dms: redirect %o', Date.now() - startTimestamp, {
package/dist/cjs/index.js CHANGED
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.fetchFEaaSComponentServerProps = exports.FEaaSComponent = exports.EditFrame = exports.DateField = exports.Text = exports.Image = exports.Context = exports.ComponentBuilder = exports.BYOCWrapper = exports.FEaaSWrapper = exports.NextImage = exports.Placeholder = exports.RichText = exports.Link = exports.useComponentProps = exports.ComponentPropsContext = exports.ComponentPropsReactContext = exports.normalizeSiteRewrite = exports.getSiteRewriteData = exports.getSiteRewrite = exports.GraphQLSiteInfoService = exports.SiteResolver = exports.GraphQLRobotsService = exports.GraphQLErrorPagesService = exports.GraphQLSitemapXmlService = exports.MultisiteGraphQLSitemapService = exports.GraphQLSitemapService = exports.DisconnectedSitemapService = exports.ComponentPropsService = exports.CdpHelper = exports.normalizePersonalizedRewrite = exports.getPersonalizedRewriteData = exports.getPersonalizedRewrite = exports.personalizeLayout = exports.RestDictionaryService = exports.GraphQLDictionaryService = exports.trackingApi = exports.mediaApi = exports.EditMode = exports.getContentStylesheetLink = exports.getFieldValue = exports.getChildPlaceholder = exports.RestLayoutService = exports.GraphQLLayoutService = exports.LayoutServicePageState = exports.debug = exports.enableDebug = exports.NativeDataFetcher = exports.AxiosDataFetcher = exports.constants = void 0;
27
- exports.EditingScripts = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = void 0;
27
+ exports.EditingScripts = exports.withEmptyFieldEditingComponent = exports.withFieldMetadata = exports.withDatasourceCheck = exports.withPlaceholder = exports.withEditorChromes = exports.useSitecoreContext = exports.withSitecoreContext = exports.SitecoreContextReactContext = exports.SitecoreContext = exports.VisitorIdentification = exports.DefaultEmptyFieldEditingComponentText = exports.DefaultEmptyFieldEditingComponentImage = exports.File = exports.getComponentLibraryStylesheetLinks = exports.BYOCComponent = void 0;
28
28
  var sitecore_jss_1 = require("@sitecore-jss/sitecore-jss");
29
29
  Object.defineProperty(exports, "constants", { enumerable: true, get: function () { return sitecore_jss_1.constants; } });
30
30
  Object.defineProperty(exports, "AxiosDataFetcher", { enumerable: true, get: function () { return sitecore_jss_1.AxiosDataFetcher; } });
@@ -99,6 +99,8 @@ Object.defineProperty(exports, "fetchFEaaSComponentServerProps", { enumerable: t
99
99
  Object.defineProperty(exports, "BYOCComponent", { enumerable: true, get: function () { return sitecore_jss_react_1.BYOCComponent; } });
100
100
  Object.defineProperty(exports, "getComponentLibraryStylesheetLinks", { enumerable: true, get: function () { return sitecore_jss_react_1.getComponentLibraryStylesheetLinks; } });
101
101
  Object.defineProperty(exports, "File", { enumerable: true, get: function () { return sitecore_jss_react_1.File; } });
102
+ Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentImage", { enumerable: true, get: function () { return sitecore_jss_react_1.DefaultEmptyFieldEditingComponentImage; } });
103
+ Object.defineProperty(exports, "DefaultEmptyFieldEditingComponentText", { enumerable: true, get: function () { return sitecore_jss_react_1.DefaultEmptyFieldEditingComponentText; } });
102
104
  Object.defineProperty(exports, "VisitorIdentification", { enumerable: true, get: function () { return sitecore_jss_react_1.VisitorIdentification; } });
103
105
  Object.defineProperty(exports, "SitecoreContext", { enumerable: true, get: function () { return sitecore_jss_react_1.SitecoreContext; } });
104
106
  Object.defineProperty(exports, "SitecoreContextReactContext", { enumerable: true, get: function () { return sitecore_jss_react_1.SitecoreContextReactContext; } });
@@ -108,4 +110,5 @@ Object.defineProperty(exports, "withEditorChromes", { enumerable: true, get: fun
108
110
  Object.defineProperty(exports, "withPlaceholder", { enumerable: true, get: function () { return sitecore_jss_react_1.withPlaceholder; } });
109
111
  Object.defineProperty(exports, "withDatasourceCheck", { enumerable: true, get: function () { return sitecore_jss_react_1.withDatasourceCheck; } });
110
112
  Object.defineProperty(exports, "withFieldMetadata", { enumerable: true, get: function () { return sitecore_jss_react_1.withFieldMetadata; } });
113
+ Object.defineProperty(exports, "withEmptyFieldEditingComponent", { enumerable: true, get: function () { return sitecore_jss_react_1.withEmptyFieldEditingComponent; } });
111
114
  Object.defineProperty(exports, "EditingScripts", { enumerable: true, get: function () { return sitecore_jss_react_1.EditingScripts; } });
@@ -16,13 +16,17 @@ import { Link as ReactLink, LinkPropTypes, } from '@sitecore-jss/sitecore-jss-re
16
16
  export const Link = forwardRef((props, ref) => {
17
17
  const { field, editable = true, children, internalLinkMatcher = /^\//g, showLinkTextWithChildrenPresent } = props, htmlLinkProps = __rest(props, ["field", "editable", "children", "internalLinkMatcher", "showLinkTextWithChildrenPresent"]);
18
18
  if (!field ||
19
- (!field.editable && !field.value && !field.href)) {
19
+ (!field.editable &&
20
+ !field.value &&
21
+ !field.href &&
22
+ !field.metadata)) {
20
23
  return null;
21
24
  }
22
25
  const value = (field.href
23
26
  ? field
24
27
  : field.value);
25
- const { href, querystring, anchor } = value;
28
+ // fallback to {} if value is undefined; could happen if field is LinkFieldValue, href is empty in metadata mode
29
+ const { href, querystring, anchor } = value || {};
26
30
  const isEditing = editable && (field.editable || field.metadata);
27
31
  if (href && !isEditing) {
28
32
  const text = showLinkTextWithChildrenPresent || !children ? value.text || value.href : null;
@@ -14,7 +14,10 @@ import PropTypes from 'prop-types';
14
14
  import React from 'react';
15
15
  import { getEEMarkup, withFieldMetadata, } from '@sitecore-jss/sitecore-jss-react';
16
16
  import Image from 'next/image';
17
- export const NextImage = withFieldMetadata((_a) => {
17
+ import { withEmptyFieldEditingComponent } from '@sitecore-jss/sitecore-jss-react';
18
+ import { DefaultEmptyFieldEditingComponentImage } from '@sitecore-jss/sitecore-jss-react';
19
+ import { isFieldValueEmpty } from '@sitecore-jss/sitecore-jss/layout';
20
+ export const NextImage = withFieldMetadata(withEmptyFieldEditingComponent((_a) => {
18
21
  var { editable = true, imageParams, field, mediaUrlPrefix, fill, priority } = _a, otherProps = __rest(_a, ["editable", "imageParams", "field", "mediaUrlPrefix", "fill", "priority"]);
19
22
  // next handles src and we use a custom loader,
20
23
  // throw error if these are present
@@ -22,8 +25,7 @@ export const NextImage = withFieldMetadata((_a) => {
22
25
  throw new Error('Detected src prop. If you wish to use src, use next/image directly.');
23
26
  }
24
27
  const dynamicMedia = field;
25
- if (!field ||
26
- (!dynamicMedia.editable && !dynamicMedia.value && !dynamicMedia.src)) {
28
+ if (!field || (!dynamicMedia.editable && isFieldValueEmpty(dynamicMedia))) {
27
29
  return null;
28
30
  }
29
31
  const imageField = dynamicMedia;
@@ -53,7 +55,7 @@ export const NextImage = withFieldMetadata((_a) => {
53
55
  return React.createElement(Image, Object.assign({ alt: "" }, imageProps));
54
56
  }
55
57
  return null; // we can't handle the truth
56
- });
58
+ }, { defaultEmptyFieldEditingComponent: DefaultEmptyFieldEditingComponentImage }));
57
59
  NextImage.propTypes = {
58
60
  field: PropTypes.oneOfType([
59
61
  PropTypes.shape({
@@ -67,5 +69,9 @@ NextImage.propTypes = {
67
69
  editable: PropTypes.bool,
68
70
  mediaUrlPrefix: PropTypes.instanceOf(RegExp),
69
71
  imageParams: PropTypes.objectOf(PropTypes.oneOfType([PropTypes.number.isRequired, PropTypes.string.isRequired]).isRequired),
72
+ emptyFieldEditingComponent: PropTypes.oneOfType([
73
+ PropTypes.object,
74
+ PropTypes.func,
75
+ ]),
70
76
  };
71
77
  NextImage.displayName = 'NextImage';
@@ -17,7 +17,7 @@ const prefetched = {};
17
17
  export const RichText = (props) => {
18
18
  const { internalLinksSelector = 'a[href^="/"]', prefetchLinks = true, editable = true } = props, rest = __rest(props, ["internalLinksSelector", "prefetchLinks", "editable"]);
19
19
  const hasText = props.field && props.field.value;
20
- const isEditing = editable && props.field && props.field.editable;
20
+ const isEditing = editable && props.field && (props.field.editable || props.field.metadata);
21
21
  const router = useRouter();
22
22
  const richTextRef = useRef(null);
23
23
  useEffect(() => {
@@ -49,7 +49,7 @@ export const RichText = (props) => {
49
49
  link.addEventListener('click', routeHandler, false);
50
50
  });
51
51
  };
52
- return React.createElement(ReactRichText, Object.assign({ ref: richTextRef }, rest));
52
+ return React.createElement(ReactRichText, Object.assign({ ref: richTextRef, editable: editable }, rest));
53
53
  };
54
54
  RichText.propTypes = Object.assign({ internalLinksSelector: PropTypes.string }, RichTextPropTypes);
55
55
  RichText.displayName = 'NextRichText';
@@ -15,6 +15,7 @@ import { EDITING_ALLOWED_ORIGINS, QUERY_PARAM_EDITING_SECRET } from './constants
15
15
  import { getJssEditingSecret } from '../utils/utils';
16
16
  import { RenderMiddlewareBase } from './render-middleware';
17
17
  import { enforceCors, getAllowedOriginsFromEnv } from '@sitecore-jss/sitecore-jss/utils';
18
+ import { DEFAULT_VARIANT } from '@sitecore-jss/sitecore-jss/personalize';
18
19
  /**
19
20
  * Handler for the Editing Chromes POST requests.
20
21
  * This handler is responsible for rendering the page and returning the HTML content that is provided via request.
@@ -188,15 +189,13 @@ export class MetadataHandler {
188
189
  this.config = config;
189
190
  }
190
191
  render(req, res) {
191
- var _a, _b;
192
+ var _a, _b, _c;
192
193
  const { query } = req;
193
194
  const startTimestamp = Date.now();
194
195
  const requiredQueryParams = [
195
196
  'sc_site',
196
197
  'sc_itemid',
197
198
  'sc_lang',
198
- 'sc_variant',
199
- 'sc_version',
200
199
  'route',
201
200
  'mode',
202
201
  ];
@@ -213,7 +212,7 @@ export class MetadataHandler {
213
212
  itemId: query.sc_itemid,
214
213
  language: query.sc_lang,
215
214
  // sc_variant is an array in the query params, but we only need the first value
216
- variantId: query.sc_variant.split(',')[0],
215
+ variantId: ((_a = query.sc_variant) === null || _a === void 0 ? void 0 : _a.split(',')[0]) || DEFAULT_VARIANT,
217
216
  version: query.sc_version,
218
217
  editMode: EditMode.Metadata,
219
218
  pageState: query.mode,
@@ -223,7 +222,7 @@ export class MetadataHandler {
223
222
  path: query.route,
224
223
  maxAge: 3,
225
224
  });
226
- const route = ((_b = (_a = this.config).resolvePageUrl) === null || _b === void 0 ? void 0 : _b.call(_a, {
225
+ const route = ((_c = (_b = this.config).resolvePageUrl) === null || _c === void 0 ? void 0 : _c.call(_b, {
227
226
  itemPath: query.route,
228
227
  })) || query.route;
229
228
  debug.editing('editing render middleware end in %dms: redirect %o', Date.now() - startTimestamp, {
package/dist/esm/index.js CHANGED
@@ -20,4 +20,4 @@ export { FEaaSWrapper };
20
20
  export { BYOCWrapper };
21
21
  export { ComponentBuilder } from './ComponentBuilder';
22
22
  export { Context } from './context';
23
- export { Image, Text, DateField, EditFrame, FEaaSComponent, fetchFEaaSComponentServerProps, BYOCComponent, getComponentLibraryStylesheetLinks, File, VisitorIdentification, SitecoreContext, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, withFieldMetadata, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
23
+ export { Image, Text, DateField, EditFrame, FEaaSComponent, fetchFEaaSComponentServerProps, BYOCComponent, getComponentLibraryStylesheetLinks, File, DefaultEmptyFieldEditingComponentImage, DefaultEmptyFieldEditingComponentText, VisitorIdentification, SitecoreContext, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, withFieldMetadata, withEmptyFieldEditingComponent, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sitecore-jss/sitecore-jss-nextjs",
3
- "version": "22.1.0-canary.40",
3
+ "version": "22.1.0-canary.42",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "sideEffects": false,
@@ -72,9 +72,9 @@
72
72
  "react-dom": "^18.2.0"
73
73
  },
74
74
  "dependencies": {
75
- "@sitecore-jss/sitecore-jss": "^22.1.0-canary.40",
76
- "@sitecore-jss/sitecore-jss-dev-tools": "^22.1.0-canary.40",
77
- "@sitecore-jss/sitecore-jss-react": "^22.1.0-canary.40",
75
+ "@sitecore-jss/sitecore-jss": "^22.1.0-canary.42",
76
+ "@sitecore-jss/sitecore-jss-dev-tools": "^22.1.0-canary.42",
77
+ "@sitecore-jss/sitecore-jss-react": "^22.1.0-canary.42",
78
78
  "@vercel/kv": "^0.2.1",
79
79
  "prop-types": "^15.8.1",
80
80
  "regex-parser": "^2.2.11",
@@ -82,7 +82,7 @@
82
82
  },
83
83
  "description": "",
84
84
  "types": "types/index.d.ts",
85
- "gitHead": "36d5e948128c5987f5d3b46ede707e1b67af59fd",
85
+ "gitHead": "1747f39006e5d311aa26c0251c178f11b2281913",
86
86
  "files": [
87
87
  "dist",
88
88
  "types",
@@ -1,3 +1,5 @@
1
+ /// <reference types="@types/react" />
2
+ import React from 'react';
1
3
  import PropTypes from 'prop-types';
2
4
  import { RichTextProps as ReactRichTextProps } from '@sitecore-jss/sitecore-jss-react';
3
5
  export type RichTextProps = ReactRichTextProps & {
@@ -25,6 +27,7 @@ export declare const RichText: {
25
27
  }>>;
26
28
  tag: PropTypes.Requireable<string>;
27
29
  editable: PropTypes.Requireable<boolean>;
30
+ emptyFieldEditingComponent: PropTypes.Requireable<NonNullable<React.ComponentClass<unknown, any> | React.FC<unknown>>>;
28
31
  internalLinksSelector: PropTypes.Requireable<string>;
29
32
  };
30
33
  displayName: string;
@@ -103,11 +103,11 @@ export type MetadataQueryParams = {
103
103
  secret: string;
104
104
  sc_lang: string;
105
105
  sc_itemid: string;
106
- sc_version: string;
107
106
  sc_site: string;
108
107
  route: string;
109
- sc_variant: string;
110
108
  mode: Exclude<LayoutServicePageState, 'normal'>;
109
+ sc_variant?: string;
110
+ sc_version?: string;
111
111
  };
112
112
  /**
113
113
  * Next.js API request with Metadata query parameters.
@@ -122,10 +122,10 @@ export type EditingMetadataPreviewData = {
122
122
  site: string;
123
123
  itemId: string;
124
124
  language: string;
125
- variantId: string;
126
- version: string;
127
125
  editMode: EditMode.Metadata;
128
126
  pageState: Exclude<LayoutServicePageState, 'Normal'>;
127
+ variantId: string;
128
+ version?: string;
129
129
  };
130
130
  /**
131
131
  * Type guard for EditingMetadataPreviewData
package/types/index.d.ts CHANGED
@@ -23,4 +23,4 @@ export { FEaaSWrapper };
23
23
  export { BYOCWrapper };
24
24
  export { ComponentBuilder, ComponentBuilderConfig } from './ComponentBuilder';
25
25
  export { Context, ContextConfig, SDK } from './context';
26
- export { ComponentFactory, Image, ImageField, ImageFieldValue, ImageProps, LinkField, LinkFieldValue, Text, TextField, DateField, EditFrame, FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, BYOCComponentParams, BYOCComponent, BYOCComponentProps, getComponentLibraryStylesheetLinks, File, FileField, RichTextField, VisitorIdentification, PlaceholderComponentProps, SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, ImageSizeParameters, WithSitecoreContextOptions, WithSitecoreContextProps, WithSitecoreContextHocProps, withFieldMetadata, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';
26
+ export { ComponentFactory, Image, ImageField, ImageFieldValue, ImageProps, LinkField, LinkFieldValue, Text, TextField, DateField, EditFrame, FEaaSComponent, FEaaSComponentProps, FEaaSComponentParams, fetchFEaaSComponentServerProps, BYOCComponentParams, BYOCComponent, BYOCComponentProps, getComponentLibraryStylesheetLinks, File, FileField, RichTextField, DefaultEmptyFieldEditingComponentImage, DefaultEmptyFieldEditingComponentText, VisitorIdentification, PlaceholderComponentProps, SitecoreContext, SitecoreContextState, SitecoreContextValue, SitecoreContextReactContext, withSitecoreContext, useSitecoreContext, withEditorChromes, withPlaceholder, withDatasourceCheck, ImageSizeParameters, WithSitecoreContextOptions, WithSitecoreContextProps, WithSitecoreContextHocProps, withFieldMetadata, withEmptyFieldEditingComponent, EditingScripts, } from '@sitecore-jss/sitecore-jss-react';