@sledge-app/react-instant-search 0.0.69 → 0.0.71

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.
@@ -441,7 +441,7 @@ const SearchInputField = (props) => {
441
441
  const SelectField$1 = "";
442
442
  const SelectField = (props) => {
443
443
  var _a;
444
- const { className = "", placeholder = null, prefixLabel = null, prefixSelectedLabel = "", align = "end", onChange, value = "", options = [] } = props;
444
+ const { className = "", placeholder = null, prefixLabel = null, prefixSelectedLabel = "", align = "end", onChange, value = "", options = [], LinkComponent, link } = props;
445
445
  const [isOpen, setIsOpen] = React__default.useState(false);
446
446
  const handleChangeField = (label, value2) => {
447
447
  onChange && onChange({ label, value: value2 });
@@ -457,7 +457,7 @@ const SelectField = (props) => {
457
457
  ] }),
458
458
  content: /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: "sledge__select-field-option", children: options == null ? void 0 : options.map((option, index) => {
459
459
  const { label, value: optionValue } = option;
460
- return /* @__PURE__ */ jsxRuntimeExports.jsx(
460
+ const Item = () => /* @__PURE__ */ jsxRuntimeExports.jsx(
461
461
  "li",
462
462
  {
463
463
  onClick: () => handleChangeField(label, optionValue),
@@ -468,6 +468,7 @@ const SelectField = (props) => {
468
468
  },
469
469
  index
470
470
  );
471
+ return LinkComponent ? /* @__PURE__ */ jsxRuntimeExports.jsx(LinkComponent, { scroll: false, to: link == null ? void 0 : link.replace("value", optionValue), href: link == null ? void 0 : link.replace("value", optionValue), children: /* @__PURE__ */ jsxRuntimeExports.jsx(Item, {}) }, index) : /* @__PURE__ */ jsxRuntimeExports.jsx(Item, {}, index);
471
472
  }) }),
472
473
  isOpen,
473
474
  setIsOpen,
@@ -618,8 +619,8 @@ const addToCartTrigger$1 = async (data) => {
618
619
  };
619
620
  const Trigger = (props) => {
620
621
  var _a, _b, _c;
621
- const { data, forceActive = false, hidden = false, onAfterAddWishlist, onAfterRemoveWishlist } = props;
622
- const { productId, productVariantId } = data || {};
622
+ const { params, forceActive = false, hidden = false, onAfterAddWishlist, onAfterRemoveWishlist } = props;
623
+ const { productId, productVariantId } = params || {};
623
624
  const { isRenderApp, triggerRenderMultipleComponent, sledgeAnonymId } = React__default.useContext(SledgeContext);
624
625
  const defaultColorIcon = "#767676";
625
626
  const defaultTypeIcon = "outline";
@@ -660,7 +661,7 @@ const Trigger = (props) => {
660
661
  return;
661
662
  }
662
663
  setIsWishlist(!isWishlist);
663
- let resAddWishlist = await addWishlist(data);
664
+ let resAddWishlist = await addWishlist(params);
664
665
  const { status, data: response_data } = resAddWishlist || {};
665
666
  const { code } = status || {};
666
667
  if (code === 200) {
@@ -712,11 +713,11 @@ const Trigger = (props) => {
712
713
  response = JSON.parse(LOCAL_STORAGE_WISHLIST_SETTING);
713
714
  if (!response)
714
715
  return;
715
- const { status, data: data2 } = response;
716
+ const { status, data } = response;
716
717
  const { code } = status;
717
718
  run = code === 200 || false;
718
719
  if (run) {
719
- setDataSettings(data2);
720
+ setDataSettings(data);
720
721
  setIsLoading(false);
721
722
  }
722
723
  };
@@ -1158,8 +1159,8 @@ const getReviewInfo = async (id) => {
1158
1159
  };
1159
1160
  const Rating = (props) => {
1160
1161
  var _a;
1161
- const { value, size = "md", data, withSkeletonLoading = true, isScrollToElementWidget = true, defaultData } = props;
1162
- const { productId } = data || {};
1162
+ const { value, size = "md", params, withSkeletonLoading = true, isScrollToElementWidget = true, defaultData } = props;
1163
+ const { productId } = params || {};
1163
1164
  const { isRenderApp, triggerRenderMultipleComponent } = React__default.useContext(SledgeContext);
1164
1165
  const [isFirstLoading, setIsFirstLoading] = React__default.useState(true);
1165
1166
  const [isLoading, setIsLoading] = React__default.useState(true);
@@ -1178,21 +1179,21 @@ const Rating = (props) => {
1178
1179
  let run = false;
1179
1180
  let valueTotalReview = 0;
1180
1181
  let valueAverageReview;
1181
- let data2;
1182
+ let data;
1182
1183
  if (!defaultData) {
1183
1184
  response = await getReviewInfo(validateProductId);
1184
1185
  if (!response)
1185
1186
  return;
1186
1187
  const { status } = response;
1187
- data2 = response.data;
1188
+ data = response.data;
1188
1189
  const { code } = status;
1189
1190
  run = code === 200 || false;
1190
1191
  } else {
1191
- data2 = defaultData;
1192
+ data = defaultData;
1192
1193
  run = true;
1193
1194
  }
1194
- valueTotalReview = (data2 == null ? void 0 : data2.review_count) ? data2.review_count : 0;
1195
- valueAverageReview = ((_a2 = data2 == null ? void 0 : data2.rating) == null ? void 0 : _a2.average) ? data2.rating.average : 0;
1195
+ valueTotalReview = (data == null ? void 0 : data.review_count) ? data.review_count : 0;
1196
+ valueAverageReview = ((_a2 = data == null ? void 0 : data.rating) == null ? void 0 : _a2.average) ? data.rating.average : 0;
1196
1197
  if (run) {
1197
1198
  setTotalReview(valueTotalReview);
1198
1199
  setAverageReview(valueAverageReview);
@@ -1201,7 +1202,7 @@ const Rating = (props) => {
1201
1202
  }
1202
1203
  };
1203
1204
  const handleRefreshProductRating = async () => {
1204
- if (value && !data) {
1205
+ if (value && !params) {
1205
1206
  setAverageReview(value);
1206
1207
  setIsLoading(false);
1207
1208
  } else {
@@ -1215,11 +1216,11 @@ const Rating = (props) => {
1215
1216
  response = JSON.parse(LOCAL_STORAGE_PRODUCT_REVIEW_SETTING);
1216
1217
  if (!response)
1217
1218
  return;
1218
- const { status, data: data2 } = response;
1219
+ const { status, data } = response;
1219
1220
  const { code } = status;
1220
1221
  run = code === 200 || false;
1221
1222
  if (run) {
1222
- setDataSettings(data2);
1223
+ setDataSettings(data);
1223
1224
  await handleRefreshProductRating();
1224
1225
  }
1225
1226
  };
@@ -1297,7 +1298,7 @@ const Rating = (props) => {
1297
1298
  }
1298
1299
  return /* @__PURE__ */ createElement("svg", { ...sizing, viewBox: "0 0 30 29", "data-product-review-rating-fill": item <= ratingValue ? "full" : fillOther, key: index }, /* @__PURE__ */ jsxRuntimeExports.jsx("use", { href: "#sledge-product-review-icons-rating-icon" }));
1299
1300
  }),
1300
- !value && data ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge-product-review__rating-summary-total", children: [
1301
+ !value && params ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge-product-review__rating-summary-total", children: [
1301
1302
  "(",
1302
1303
  totalReview,
1303
1304
  ")"
@@ -1305,7 +1306,7 @@ const Rating = (props) => {
1305
1306
  ] })
1306
1307
  ] }) });
1307
1308
  };
1308
- const WidgetHeaderAddTrigger = ({ isFirstLoading, text, dataSettings, data, onAfterAddReview }) => {
1309
+ const WidgetHeaderAddTrigger = ({ isFirstLoading, text, dataSettings, params, onAfterAddReview }) => {
1309
1310
  var _a, _b, _c;
1310
1311
  const {
1311
1312
  text_color: display_button_write_review_text_color,
@@ -1339,7 +1340,7 @@ const WidgetHeaderAddTrigger = ({ isFirstLoading, text, dataSettings, data, onAf
1339
1340
  {
1340
1341
  type: "button",
1341
1342
  colorType: "success",
1342
- onClick: () => typeof window !== "undefined" && window.sledgeProductReviewWidgetFormAdd && window.sledgeProductReviewWidgetFormAdd(data, onAfterAddReview),
1343
+ onClick: () => typeof window !== "undefined" && window.sledgeProductReviewWidgetFormAdd && window.sledgeProductReviewWidgetFormAdd(params, onAfterAddReview),
1343
1344
  style: display_button_write_review_style,
1344
1345
  children: [
1345
1346
  /* @__PURE__ */ jsxRuntimeExports.jsx("svg", { width: 16, height: 17, viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -1356,7 +1357,7 @@ const WidgetHeaderAddTrigger = ({ isFirstLoading, text, dataSettings, data, onAf
1356
1357
  }
1357
1358
  ) });
1358
1359
  };
1359
- const WidgetHeaderSort = ({ isFirstLoading, productReviewSort, dataSettings, setSelectedSort, setIsRefreshWidgetList }) => {
1360
+ const WidgetHeaderSort = ({ isFirstLoading, productReviewSort, dataSettings, setSelectedSort, setIsRefreshWidgetList, LinkComponent }) => {
1360
1361
  var _a, _b;
1361
1362
  const { default_sort, show_sorting_options } = ((_a = dataSettings == null ? void 0 : dataSettings.display) == null ? void 0 : _a.widget) || {};
1362
1363
  const [clickedSortId, setClickedSortId] = React__default.useState(default_sort || null);
@@ -1388,7 +1389,9 @@ const WidgetHeaderSort = ({ isFirstLoading, productReviewSort, dataSettings, set
1388
1389
  };
1389
1390
  }),
1390
1391
  value: getSelectedSort,
1391
- onChange: ({ value }) => handleChangeSort(value)
1392
+ onChange: ({ value }) => handleChangeSort(value),
1393
+ LinkComponent,
1394
+ link: "?page=1&sort=value"
1392
1395
  }
1393
1396
  ) }) });
1394
1397
  };
@@ -1416,8 +1419,8 @@ const VISIBLE_ANIMATION = {
1416
1419
  };
1417
1420
  const WidgetHeaderSummary = (props) => {
1418
1421
  var _a, _b, _c;
1419
- const { data, dataSettings, defaultData } = props;
1420
- const { productId } = data || {};
1422
+ const { params, dataSettings, summaryData } = props;
1423
+ const { productId } = params || {};
1421
1424
  const { fill_color: display_summary_bar_fill_color, outline_color: display_summary_bar_outline_color } = ((_b = (_a = dataSettings == null ? void 0 : dataSettings.display) == null ? void 0 : _a.widget) == null ? void 0 : _b.summary_bar) || {};
1422
1425
  const { review_singular, review_plural } = ((_c = dataSettings == null ? void 0 : dataSettings.languages) == null ? void 0 : _c.widget) || {};
1423
1426
  const [isFirstLoading, setIsFirstLoading] = React__default.useState(true);
@@ -1438,32 +1441,32 @@ const WidgetHeaderSummary = (props) => {
1438
1441
  const handleProductReviewInfo = async () => {
1439
1442
  var _a2;
1440
1443
  let response;
1441
- let data2;
1444
+ let data;
1442
1445
  let run = false;
1443
1446
  let valueTotalReview = 0;
1444
1447
  let valueRatingList;
1445
1448
  let valueAverageReview;
1446
- if (!defaultData) {
1449
+ if (!summaryData) {
1447
1450
  response = await getReviewInfo(productId);
1448
1451
  if (!response)
1449
1452
  return;
1450
1453
  const { status } = response;
1451
1454
  const { code } = status;
1452
- data2 = response.data;
1455
+ data = response.data;
1453
1456
  run = code === 200 || false;
1454
1457
  } else {
1455
- data2 = defaultData;
1458
+ data = summaryData;
1456
1459
  run = true;
1457
1460
  }
1458
- valueTotalReview = (data2 == null ? void 0 : data2.review_count) ? data2.review_count : 0;
1459
- valueRatingList = (data2 == null ? void 0 : data2.rating) ? {
1460
- 5: data2.rating["5"] || 0,
1461
- 4: data2.rating["4"] || 0,
1462
- 3: data2.rating["3"] || 0,
1463
- 2: data2.rating["2"] || 0,
1464
- 1: data2.rating["1"] || 0
1461
+ valueTotalReview = (data == null ? void 0 : data.review_count) ? data.review_count : 0;
1462
+ valueRatingList = (data == null ? void 0 : data.rating) ? {
1463
+ 5: data.rating["5"] || 0,
1464
+ 4: data.rating["4"] || 0,
1465
+ 3: data.rating["3"] || 0,
1466
+ 2: data.rating["2"] || 0,
1467
+ 1: data.rating["1"] || 0
1465
1468
  } : ratingList;
1466
- valueAverageReview = ((_a2 = data2 == null ? void 0 : data2.rating) == null ? void 0 : _a2.average) ? data2.rating.average : "0";
1469
+ valueAverageReview = ((_a2 = data == null ? void 0 : data.rating) == null ? void 0 : _a2.average) ? data.rating.average : "0";
1467
1470
  if (run) {
1468
1471
  setTotalReview(valueTotalReview);
1469
1472
  setRatingList(valueRatingList);
@@ -1777,7 +1780,7 @@ const ProductGrid = ({
1777
1780
  /* @__PURE__ */ jsxRuntimeExports.jsx(
1778
1781
  Trigger,
1779
1782
  {
1780
- data: {
1783
+ params: {
1781
1784
  productId: id,
1782
1785
  productVariantId: variant_id,
1783
1786
  productName: title,
@@ -1834,7 +1837,7 @@ const ProductGrid = ({
1834
1837
  /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__product-grid-card-rating", children: /* @__PURE__ */ jsxRuntimeExports.jsx(
1835
1838
  Rating,
1836
1839
  {
1837
- data: {
1840
+ params: {
1838
1841
  productId: id
1839
1842
  },
1840
1843
  size: "xs",
@@ -2675,9 +2678,9 @@ const SearchIconWidgetPopup = () => {
2675
2678
  const SearchResultWidget = (props) => {
2676
2679
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
2677
2680
  const { isRenderApp, isJsVersion } = React__default.useContext(SledgeContext);
2678
- const { layoutType = "default", query, data, children, onAfterAddToCart, onAfterAddWishlist, onAfterRemoveWishlist, onAfterRenderProduct } = props;
2681
+ const { layoutType = "default", query, params, children, onAfterAddToCart, onAfterAddWishlist, onAfterRemoveWishlist, onAfterRenderProduct } = props;
2679
2682
  const { keyword: queryKeyword = "" } = query || {};
2680
- const { collectionId } = data || {};
2683
+ const { collectionId } = params || {};
2681
2684
  let productCardsComponent = null;
2682
2685
  React__default.Children.map(children, (child) => {
2683
2686
  if (React__default.isValidElement(child) && isFunction(child.type)) {
@@ -2711,8 +2714,8 @@ const SearchResultWidget = (props) => {
2711
2714
  setClickedTabIndexName(name);
2712
2715
  setResultComponent(id.includes(suffixIndexProduct) ? /* @__PURE__ */ jsxRuntimeExports.jsx(ResultProduct, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(ResultCategory, {}));
2713
2716
  };
2714
- const handleInitStates = async (data2, type) => {
2715
- const { filters, tabs, suffix_index_product, hidden_tags, display, show_out_of_stock } = data2;
2717
+ const handleInitStates = async (data, type) => {
2718
+ const { filters, tabs, suffix_index_product, hidden_tags, display, show_out_of_stock } = data;
2716
2719
  let getTabs = layoutType === "product-filter" ? tabs.filter(({ index }) => index == null ? void 0 : index.includes(suffix_index_product)) : tabs;
2717
2720
  let response;
2718
2721
  let body = {
@@ -2813,9 +2816,9 @@ const SearchResultWidget = (props) => {
2813
2816
  response = JSON.parse(LOCAL_STORAGE_INSTANT_SEARCH_SETTING);
2814
2817
  if (!response)
2815
2818
  return;
2816
- const { status, data: data2 } = response;
2819
+ const { status, data } = response;
2817
2820
  const { code } = status;
2818
- const { allowed_sorts, default_sort, filters, tabs, suffix_index_product, hidden_tags, display, colors, show_out_of_stock } = data2;
2821
+ const { allowed_sorts, default_sort, filters, tabs, suffix_index_product, hidden_tags, display, colors, show_out_of_stock } = data;
2819
2822
  run = code === 200 || false;
2820
2823
  if (run) {
2821
2824
  setAllowedSorts((allowed_sorts == null ? void 0 : allowed_sorts.length) ? allowed_sorts : []);
@@ -2831,9 +2834,9 @@ const SearchResultWidget = (props) => {
2831
2834
  setClickedTabIndexId(getFirstIndex.index);
2832
2835
  setClickedTabIndexName(getFirstIndex.name);
2833
2836
  }
2834
- await handleInitStates(data2, "default");
2837
+ await handleInitStates(data, "default");
2835
2838
  if (layoutType === "default")
2836
- await handleInitStates(data2, "totalDataPerIndex");
2839
+ await handleInitStates(data, "totalDataPerIndex");
2837
2840
  }
2838
2841
  };
2839
2842
  React__default.useEffect(() => {
@@ -3149,7 +3152,7 @@ const SearchResultWidget = (props) => {
3149
3152
  defaultSort,
3150
3153
  showOutOfStock,
3151
3154
  query,
3152
- data,
3155
+ params,
3153
3156
  isJsVersion,
3154
3157
  productCardsComponent,
3155
3158
  onAfterAddToCart,
@@ -3182,7 +3185,7 @@ const ResultProduct = (props) => {
3182
3185
  defaultSort,
3183
3186
  showOutOfStock,
3184
3187
  query,
3185
- data,
3188
+ params,
3186
3189
  isJsVersion,
3187
3190
  productCardsComponent,
3188
3191
  setKeyword,
@@ -3197,7 +3200,7 @@ const ResultProduct = (props) => {
3197
3200
  searchResultContainerRef
3198
3201
  } = props || {};
3199
3202
  const { keyword: queryKeyword = "" } = query || {};
3200
- const { collectionId } = data || {};
3203
+ const { collectionId } = params || {};
3201
3204
  const [isFirstLoading, setIsFirstLoading] = React__default.useState(true);
3202
3205
  const [isLoading, setIsLoading] = React__default.useState(true);
3203
3206
  const [isOpenSort, setIsOpenSort] = React__default.useState(false);