s-platform-landing-section 0.1.30 → 0.1.32

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/index.js CHANGED
@@ -166,6 +166,103 @@ var urlMappings = {
166
166
  function convertURL(path) {
167
167
  return urlMappings[path] || path;
168
168
  }
169
+ var ROUTE = {
170
+ HOME: {
171
+ name: "home",
172
+ label: "Trang chủ",
173
+ route: "/",
174
+ isShow: true
175
+ },
176
+ PRODUCTS: {
177
+ name: "products",
178
+ label: "Sản phẩm",
179
+ route: "/products",
180
+ isShow: true
181
+ },
182
+ PRODUCTS_BY_CATEGORY: {
183
+ name: "products_by_category",
184
+ label: "Sản phẩm theo danh mục",
185
+ route: "/products/:slug"
186
+ },
187
+ PRODUCT: {
188
+ name: "product",
189
+ label: "Chi tiết sản phẩm",
190
+ route: "/product/:slug"
191
+ },
192
+ SERVICES: {
193
+ name: "services",
194
+ label: "Dịch vụ",
195
+ route: "/services",
196
+ isShow: true
197
+ },
198
+ SERVICE: {
199
+ name: "service",
200
+ label: "Chi tiết dịch vụ",
201
+ route: "/service/:slug"
202
+ },
203
+ BOOKING: {
204
+ name: "booking",
205
+ label: "Đặt lịch",
206
+ route: "/dat-lich",
207
+ isShow: true
208
+ },
209
+ ABOUT: {
210
+ name: "about",
211
+ label: "Giới thiệu",
212
+ route: "/about",
213
+ isShow: true
214
+ },
215
+ SALES: {
216
+ name: "sales",
217
+ label: "Sản phẩm",
218
+ route: "/sales"
219
+ },
220
+ NEWS: {
221
+ name: "news",
222
+ label: "Tin tức",
223
+ route: "/news"
224
+ },
225
+ NEWS_BY_CATEGORY: {
226
+ name: "news_by_category",
227
+ label: "Tin tức theo danh mục",
228
+ route: "/news/:slug"
229
+ },
230
+ NEWS_DETAIL: {
231
+ name: "news_detail",
232
+ label: "Tin tức",
233
+ route: "/news/:slug/:languageCode"
234
+ },
235
+ CARTS: {
236
+ name: "carts",
237
+ label: "Giỏ hàng",
238
+ route: "/carts"
239
+ },
240
+ ORDERS: {
241
+ name: "orders",
242
+ label: "Đơn hàng",
243
+ route: "/orders"
244
+ },
245
+ ORDER: {
246
+ name: "order",
247
+ label: "Chi tiết đơn hàng",
248
+ route: "/order"
249
+ },
250
+ ACCOUNT: {
251
+ name: "account",
252
+ label: "Tài khoản",
253
+ route: "/account"
254
+ },
255
+ PROFILE: {
256
+ name: "profile",
257
+ label: "Tài khoản",
258
+ route: "/profile"
259
+ },
260
+ SEARCH: {
261
+ name: "search",
262
+ label: "Tìm kiếm",
263
+ route: "/search"
264
+ }
265
+ };
169
266
 
170
267
  var Options = function Options(props) {
171
268
  var _props$className = props.className,
@@ -332,7 +429,7 @@ var NavBar7 = function NavBar7(props) {
332
429
  top: "-100px"
333
430
  }
334
431
  }, shopConfig === null || shopConfig === void 0 ? void 0 : shopConfig.defaultDomain, " | ", shopConfig === null || shopConfig === void 0 ? void 0 : shopConfig.shopName), /*#__PURE__*/React__default.createElement("div", {
335
- className: "hidden lg:flex gap-6 justify-between items-center py-1.5 px-4 xl:px-20"
432
+ className: "hidden lg:flex gap-6 justify-between items-center py-2 px-4 xl:px-20"
336
433
  }, /*#__PURE__*/React__default.createElement(LinkToPage, {
337
434
  Link: Link,
338
435
  href: "/",
@@ -372,7 +469,7 @@ var NavBar7 = function NavBar7(props) {
372
469
  dropdownClassName: "right-0 top-8",
373
470
  className: "flex gap-4 items-center"
374
471
  }, /*#__PURE__*/React__default.createElement("div", {
375
- className: "font-semibold"
472
+ className: "font-semibold whitespace-nowrap"
376
473
  }, userInfo === null || userInfo === void 0 ? void 0 : userInfo.name), /*#__PURE__*/React__default.createElement(io5.IoChevronDownOutline, {
377
474
  className: "text-gray3",
378
475
  size: 24
@@ -385,16 +482,18 @@ var NavBar7 = function NavBar7(props) {
385
482
  href: "/dang-nhap"
386
483
  }, /*#__PURE__*/React__default.createElement(Button, {
387
484
  label: "Đăng nhập",
388
- shopConfigStyle: shopConfigStyle
485
+ shopConfigStyle: shopConfigStyle,
486
+ className: "whitespace-nowrap"
389
487
  })), /*#__PURE__*/React__default.createElement("a", {
390
488
  href: "https://sodofin.vn/account",
391
489
  target: "_blank"
392
490
  }, /*#__PURE__*/React__default.createElement(Button, {
393
491
  label: "Đăng ký",
394
492
  shopConfigStyle: shopConfigStyle,
395
- type: 'outline'
493
+ type: 'outline',
494
+ className: "whitespace-nowrap"
396
495
  })))), /*#__PURE__*/React__default.createElement("div", {
397
- className: "relative lg:hidden flex gap-4 items-center px-4 py-1.5"
496
+ className: "relative lg:hidden flex gap-4 items-center px-4 py-2"
398
497
  }, /*#__PURE__*/React__default.createElement(LinkToPage, {
399
498
  Link: Link,
400
499
  href: "/",
@@ -663,7 +762,7 @@ var NavBar1 = function NavBar1(props) {
663
762
  dropdownClassName: "right-0 top-8",
664
763
  className: "flex gap-4 items-center"
665
764
  }, /*#__PURE__*/React__default.createElement("div", {
666
- className: "font-semibold"
765
+ className: "font-semibold whitespace-nowrap"
667
766
  }, userInfo === null || userInfo === void 0 ? void 0 : userInfo.name), /*#__PURE__*/React__default.createElement(io5.IoChevronDownOutline, {
668
767
  className: "text-gray3",
669
768
  size: 24
@@ -676,14 +775,16 @@ var NavBar1 = function NavBar1(props) {
676
775
  href: "/dang-nhap"
677
776
  }, /*#__PURE__*/React__default.createElement(Button, {
678
777
  label: "Đăng nhập",
679
- shopConfigStyle: shopConfigStyle
778
+ shopConfigStyle: shopConfigStyle,
779
+ className: "whitespace-nowrap"
680
780
  })), /*#__PURE__*/React__default.createElement("a", {
681
781
  href: "https://sodofin.vn/account",
682
782
  target: "_blank"
683
783
  }, /*#__PURE__*/React__default.createElement(Button, {
684
784
  label: "Đăng ký",
685
785
  shopConfigStyle: shopConfigStyle,
686
- type: 'outline'
786
+ type: 'outline',
787
+ className: "whitespace-nowrap"
687
788
  })))), /*#__PURE__*/React__default.createElement("div", {
688
789
  className: "relative lg:hidden flex gap-4 items-center px-4 py-2"
689
790
  }, /*#__PURE__*/React__default.createElement(LinkToPage, {
@@ -1106,7 +1207,8 @@ var Hero2 = function Hero2(props) {
1106
1207
  }), /*#__PURE__*/React__default.createElement("div", {
1107
1208
  className: "font-medium line-clamp-1 ",
1108
1209
  style: {
1109
- fontSize: "clamp(1.25rem, 3vw, 2.5rem)"
1210
+ fontSize: "clamp(1.25rem, 4vw, 3.5rem)",
1211
+ lineHeight: "1.5"
1110
1212
  }
1111
1213
  }, data === null || data === void 0 ? void 0 : (_data$data3 = data.data) === null || _data$data3 === void 0 ? void 0 : (_data$data3$ = _data$data3[0]) === null || _data$data3$ === void 0 ? void 0 : _data$data3$.title), /*#__PURE__*/React__default.createElement("div", {
1112
1214
  className: "text-xs line-clamp-2 md:line-clamp-3 text-ellipsis sm:text-base md:text-xl lg:text-2xl"
@@ -1155,7 +1257,7 @@ var Hero6 = function Hero6(props) {
1155
1257
  }, data === null || data === void 0 ? void 0 : (_data$data4 = data.data) === null || _data$data4 === void 0 ? void 0 : (_data$data4$ = _data$data4[0]) === null || _data$data4$ === void 0 ? void 0 : _data$data4$.title) : null, /*#__PURE__*/React__default.createElement("div", {
1156
1258
  className: "flex flex-col gap-1 md:gap-4 lg:gap-6 "
1157
1259
  }, data !== null && data !== void 0 && (_data$data5 = data.data) !== null && _data$data5 !== void 0 && (_data$data5$ = _data$data5[0]) !== null && _data$data5$ !== void 0 && _data$data5$.description ? /*#__PURE__*/React__default.createElement("div", {
1158
- className: "line-clamp-1 md:line-clamp-2",
1260
+ className: "line-clamp-1 md:line-clamp-2 pb-1",
1159
1261
  style: {
1160
1262
  fontSize: "clamp(0.75rem, 3vw, 1.5rem)"
1161
1263
  }
@@ -8051,6 +8153,16 @@ var Loading = function Loading(props) {
8051
8153
  });
8052
8154
  };
8053
8155
 
8156
+ var NotFoundProduct = function NotFoundProduct(props) {
8157
+ var _props$text = props.text,
8158
+ text = _props$text === void 0 ? "sản phẩm" : _props$text;
8159
+ return /*#__PURE__*/React__default.createElement("div", {
8160
+ className: "h-60 flex flex-col justify-center items-center text-xl text-gray4"
8161
+ }, /*#__PURE__*/React__default.createElement(fa.FaBoxOpen, {
8162
+ size: 80
8163
+ }), /*#__PURE__*/React__default.createElement("div", null, "Kh\xF4ng c\xF3 ", text));
8164
+ };
8165
+
8054
8166
  var TreatmentsCategory7 = function TreatmentsCategory7(props) {
8055
8167
  var _props$shopConfigStyl = props.shopConfigStyle,
8056
8168
  shopConfigStyle = _props$shopConfigStyl === void 0 ? {} : _props$shopConfigStyl,
@@ -8122,23 +8234,13 @@ var TreatmentsCategory7 = function TreatmentsCategory7(props) {
8122
8234
  }, /*#__PURE__*/React__default.createElement(ProductItem1, {
8123
8235
  product: product === null || product === void 0 ? void 0 : product.productInfo
8124
8236
  }));
8125
- })) : /*#__PURE__*/React__default.createElement("div", {
8126
- className: "text-gray3 text-center p-12"
8127
- }, "Kh\xF4ng c\xF3 d\u1ECBch v\u1EE5")), /*#__PURE__*/React__default.createElement(Dash, {
8237
+ })) : /*#__PURE__*/React__default.createElement(NotFoundProduct, {
8238
+ text: "d\u1ECBch v\u1EE5"
8239
+ })), /*#__PURE__*/React__default.createElement(Dash, {
8128
8240
  color: secondary
8129
8241
  }));
8130
8242
  };
8131
8243
 
8132
- var NotFoundProduct = function NotFoundProduct(props) {
8133
- var _props$text = props.text,
8134
- text = _props$text === void 0 ? "sản phẩm" : _props$text;
8135
- return /*#__PURE__*/React__default.createElement("div", {
8136
- className: "h-60 flex flex-col justify-center items-center text-xl text-gray4"
8137
- }, /*#__PURE__*/React__default.createElement(fa.FaBoxOpen, {
8138
- size: 80
8139
- }), /*#__PURE__*/React__default.createElement("div", null, "Kh\xF4ng c\xF3 ", text));
8140
- };
8141
-
8142
8244
  var TreatmentsList6 = function TreatmentsList6(props) {
8143
8245
  var _products$slice;
8144
8246
  var data = props.data,
@@ -9403,7 +9505,7 @@ var TreatmentsList7 = function TreatmentsList7(props) {
9403
9505
  key: index
9404
9506
  }, /*#__PURE__*/React__default.createElement(ProductImage, {
9405
9507
  product: product === null || product === void 0 ? void 0 : product.productInfo,
9406
- className: "aspect-video rounded-2xl"
9508
+ className: "!aspect-[16/11] rounded-2xl"
9407
9509
  }), /*#__PURE__*/React__default.createElement("div", {
9408
9510
  className: ''
9409
9511
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -9430,7 +9532,7 @@ var TreatmentsList7 = function TreatmentsList7(props) {
9430
9532
  }), /*#__PURE__*/React__default.createElement("div", {
9431
9533
  className: "mt-12 w-full"
9432
9534
  }, (products === null || products === void 0 ? void 0 : products.length) > 0 ? /*#__PURE__*/React__default.createElement(Slider, {
9433
- infinite: true,
9535
+ infinite: (products === null || products === void 0 ? void 0 : products.length) > 1 ? true : false,
9434
9536
  slidesToShow: 1,
9435
9537
  slidesToScroll: 1,
9436
9538
  speed: 500,
@@ -9858,7 +9960,7 @@ var ProductItem3 = function ProductItem3(props) {
9858
9960
  className: "w-full border border-stroke rounded-2xl " + className
9859
9961
  }, /*#__PURE__*/React__default.createElement(ProductImage, {
9860
9962
  product: product,
9861
- className: "w-full h-44 md:h-56 lg:h-64 xl:h-72 bg-cover bg-no-repeat rounded-t-2xl"
9963
+ className: "w-full h-48 md:h-60 xl:h-[304px] rounded-t-2xl"
9862
9964
  }), /*#__PURE__*/React__default.createElement("div", {
9863
9965
  className: "p-4 flex flex-col gap-2 md:gap-4 items-start"
9864
9966
  }, /*#__PURE__*/React__default.createElement("div", {
@@ -9950,7 +10052,7 @@ var ProductItem6 = function ProductItem6(props) {
9950
10052
  className: "w-full border border-stroke flex flex-col gap-2 md:gap-4 rounded-2xl p-2 md:p-4 xl:p-6 " + className
9951
10053
  }, /*#__PURE__*/React__default.createElement(ProductImage, {
9952
10054
  product: product,
9953
- className: "w-full h-40 sm:h-56 lg:h-60 xl:h-64 bg-cover bg-no-repeat rounded-2xl"
10055
+ className: "w-full h-48 md:h-60 xl:h-72 rounded-2xl"
9954
10056
  }), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", {
9955
10057
  className: "text start line-clamp-1 w-full overflow-hidden text-ellipsis"
9956
10058
  }, product === null || product === void 0 ? void 0 : product.productName), /*#__PURE__*/React__default.createElement(ProductPrice, {
@@ -10006,7 +10108,7 @@ var TreatmentItem1 = function TreatmentItem1(props) {
10006
10108
  className: "w-full flex flex-col gap-4 rounded-2xl p-1"
10007
10109
  }, /*#__PURE__*/React__default.createElement(ProductImage, {
10008
10110
  product: product,
10009
- className: "w-full w-full h-44 md:h-56 lg:h-64 xl:h-72 bg-cover bg-no-repeat rounded-2xl"
10111
+ className: "w-full w-full h-[189px] md:h-[238px] xl:h-[304px] rounded-2xl"
10010
10112
  }), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", {
10011
10113
  className: "line-clamp-1 mb-2 font-medium text-lg"
10012
10114
  }, product === null || product === void 0 ? void 0 : product.productName), /*#__PURE__*/React__default.createElement(ProductPrice, {
@@ -10024,6 +10126,7 @@ var TreatmentItem1 = function TreatmentItem1(props) {
10024
10126
  };
10025
10127
 
10026
10128
  var ProductList7 = function ProductList7(props) {
10129
+ var _products$slice;
10027
10130
  var _props$shopConfigStyl = props.shopConfigStyle,
10028
10131
  shopConfigStyle = _props$shopConfigStyl === void 0 ? {} : _props$shopConfigStyl,
10029
10132
  _props$data = props.data,
@@ -10037,7 +10140,7 @@ var ProductList7 = function ProductList7(props) {
10037
10140
  _shopConfigStyle$colo3 = _shopConfigStyle$colo.secondary,
10038
10141
  secondary = _shopConfigStyle$colo3 === void 0 ? "#000" : _shopConfigStyle$colo3;
10039
10142
  var _useState = React.useState({
10040
- size: 4
10143
+ size: 8
10041
10144
  }),
10042
10145
  params = _useState[0];
10043
10146
  var _ProductController = ProductController(_extends({}, props, {
@@ -10053,21 +10156,21 @@ var ProductList7 = function ProductList7(props) {
10053
10156
  shopConfigStyle: shopConfigStyle
10054
10157
  }), /*#__PURE__*/React__default.createElement("div", {
10055
10158
  className: "grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-10 mt-12"
10056
- }, products === null || products === void 0 ? void 0 : products.map(function (product, index) {
10159
+ }, products === null || products === void 0 ? void 0 : (_products$slice = products.slice(0, 4)) === null || _products$slice === void 0 ? void 0 : _products$slice.map(function (product, index) {
10057
10160
  return /*#__PURE__*/React__default.createElement(ProductItem, {
10058
10161
  Link: Link,
10059
10162
  shopConfigStyle: shopConfigStyle,
10060
10163
  key: index,
10061
10164
  product: product === null || product === void 0 ? void 0 : product.productInfo
10062
10165
  });
10063
- })), (products === null || products === void 0 ? void 0 : products.length) > 0 ? /*#__PURE__*/React__default.createElement(LinkToPage, {
10166
+ })), (products === null || products === void 0 ? void 0 : products.length) > 4 ? /*#__PURE__*/React__default.createElement(LinkToPage, {
10064
10167
  href: "/san-pham",
10065
10168
  Link: Link
10066
10169
  }, /*#__PURE__*/React__default.createElement(Button, {
10067
10170
  label: "Xem tất cả",
10068
10171
  shopConfigStyle: shopConfigStyle,
10069
10172
  className: "mt-12"
10070
- })) : null), /*#__PURE__*/React__default.createElement(Dash, {
10173
+ })) : /*#__PURE__*/React__default.createElement(NotFoundProduct, null)), /*#__PURE__*/React__default.createElement(Dash, {
10071
10174
  color: secondary
10072
10175
  }));
10073
10176
  };
@@ -10204,47 +10307,65 @@ var Products2 = function Products2(props) {
10204
10307
  }), " "))));
10205
10308
  };
10206
10309
 
10207
- var Pagination = function Pagination(props) {
10208
- var _props$size = props.size,
10209
- size = _props$size === void 0 ? 24 : _props$size,
10210
- _props$className = props.className,
10211
- className = _props$className === void 0 ? "" : _props$className,
10212
- _props$total_pages = props.total_pages,
10213
- total_pages = _props$total_pages === void 0 ? 0 : _props$total_pages,
10214
- _props$has_next = props.has_next,
10215
- has_next = _props$has_next === void 0 ? true : _props$has_next,
10216
- _props$has_previous = props.has_previous,
10217
- has_previous = _props$has_previous === void 0 ? false : _props$has_previous,
10218
- _props$current_page = props.current_page,
10219
- current_page = _props$current_page === void 0 ? 0 : _props$current_page,
10220
- _props$onPageChange = props.onPageChange,
10221
- onPageChange = _props$onPageChange === void 0 ? function () {} : _props$onPageChange;
10310
+ var Pagination = function Pagination(_ref) {
10311
+ var _ref$size = _ref.size,
10312
+ size = _ref$size === void 0 ? 24 : _ref$size,
10313
+ _ref$className = _ref.className,
10314
+ className = _ref$className === void 0 ? "" : _ref$className,
10315
+ _ref$total_pages = _ref.total_pages,
10316
+ total_pages = _ref$total_pages === void 0 ? 1 : _ref$total_pages,
10317
+ _ref$current_page = _ref.current_page,
10318
+ current_page = _ref$current_page === void 0 ? 1 : _ref$current_page,
10319
+ _ref$onPageChange = _ref.onPageChange,
10320
+ onPageChange = _ref$onPageChange === void 0 ? function () {} : _ref$onPageChange;
10222
10321
  var handlePageChange = function handlePageChange(page) {
10223
- onPageChange(page);
10322
+ if (page >= 0 && page <= total_pages - 1) {
10323
+ onPageChange(page);
10324
+ }
10325
+ };
10326
+ var generatePageNumbers = function generatePageNumbers() {
10327
+ if (total_pages <= 5) {
10328
+ return Array.from({
10329
+ length: total_pages
10330
+ }, function (_, i) {
10331
+ return i + 1;
10332
+ });
10333
+ }
10334
+ var pages = [1];
10335
+ if (current_page > 3) pages.push("...");
10336
+ var start = Math.max(2, current_page - 1);
10337
+ var end = Math.min(total_pages - 1, current_page + 2);
10338
+ for (var i = start; i <= end; i++) {
10339
+ pages.push(i);
10340
+ }
10341
+ if (current_page < total_pages - 2) pages.push("...");
10342
+ pages.push(total_pages);
10343
+ return pages;
10224
10344
  };
10225
10345
  return /*#__PURE__*/React__default.createElement("div", {
10226
- className: "flex gap-4 items-center justify-self-center " + className
10346
+ className: "flex gap-4 justify-center items-center " + className
10227
10347
  }, /*#__PURE__*/React__default.createElement(io5.IoChevronBackOutline, {
10228
- className: has_previous ? "text-primary cursor-pointer" : "text-gray3",
10348
+ className: current_page > 0 ? "text-primary cursor-pointer" : "text-gray3 cursor-not-allowed",
10229
10349
  size: size,
10230
10350
  onClick: function onClick() {
10231
- if (has_previous) handlePageChange(current_page - 1);
10351
+ return handlePageChange(current_page - 1);
10232
10352
  }
10233
10353
  }), /*#__PURE__*/React__default.createElement("div", {
10234
10354
  className: "flex items-center space-x-1"
10235
- }, Array(total_pages).fill().map(function (_, index) {
10355
+ }, generatePageNumbers().map(function (page, index) {
10236
10356
  return /*#__PURE__*/React__default.createElement("button", {
10237
10357
  key: index,
10238
10358
  onClick: function onClick() {
10239
- return handlePageChange(index);
10359
+ return typeof page === "number" && handlePageChange(page - 1);
10240
10360
  },
10241
- className: "px-4 py-1 rounded-md " + (index === current_page ? 'bg-primary text-textButton' : 'bg-transparent text-primary') + " hover:opacity-80"
10242
- }, index + 1);
10361
+ className: "px-4 py-1 rounded-md " + (page === current_page + 1 ? "bg-primary text-white" : "bg-transparent text-primary") + " hover:opacity-80 " + (page === "..." ? "cursor-default text-gray-500" : ""),
10362
+ disabled: page === "..."
10363
+ }, page);
10243
10364
  })), /*#__PURE__*/React__default.createElement(io5.IoChevronForwardOutline, {
10244
- className: has_next ? "text-primary cursor-pointer" : "text-gray3",
10365
+ className: current_page < total_pages - 1 ? "text-primary cursor-pointer" : "text-gray3 cursor-not-allowed",
10245
10366
  size: size,
10246
10367
  onClick: function onClick() {
10247
- if (has_next) handlePageChange(current_page + 1);
10368
+ return handlePageChange(current_page + 1);
10248
10369
  }
10249
10370
  }));
10250
10371
  };
@@ -10268,11 +10389,9 @@ var Products3 = function Products3(props) {
10268
10389
  }),
10269
10390
  productParams = _useState[0],
10270
10391
  setProductParams = _useState[1];
10271
- var _useState2 = React.useState(false),
10272
- setIsAutoGetList = _useState2[1];
10273
- var _useState3 = React.useState(),
10274
- categorySelected = _useState3[0],
10275
- setCategorySelected = _useState3[1];
10392
+ var _useState2 = React.useState(),
10393
+ categorySelected = _useState2[0],
10394
+ setCategorySelected = _useState2[1];
10276
10395
  var _ProductController = ProductController(_extends({}, props, {
10277
10396
  params: productParams
10278
10397
  })),
@@ -10286,16 +10405,12 @@ var Products3 = function Products3(props) {
10286
10405
  }
10287
10406
  })),
10288
10407
  categories = _CategoryController.categories;
10289
- React.useEffect(function () {
10290
- setCategorySelected(categories === null || categories === void 0 ? void 0 : categories[0]);
10291
- }, [categories]);
10292
10408
  React.useEffect(function () {
10293
10409
  if (categorySelected) {
10294
10410
  setProductParams(_extends({}, productParams, {
10295
10411
  page: 0,
10296
10412
  categoryId: categorySelected === null || categorySelected === void 0 ? void 0 : categorySelected.categoryId
10297
10413
  }));
10298
- setIsAutoGetList(true);
10299
10414
  }
10300
10415
  }, [categorySelected]);
10301
10416
  var onSelectCategory = function onSelectCategory(category) {
@@ -10319,7 +10434,16 @@ var Products3 = function Products3(props) {
10319
10434
  className: "text-xl"
10320
10435
  }, "Danh m\u1EE5c s\u1EA3n ph\u1EA9m"), /*#__PURE__*/React__default.createElement("div", {
10321
10436
  className: "overflow-y-auto max-h-96"
10322
- }, categories === null || categories === void 0 ? void 0 : categories.map(function (category, index) {
10437
+ }, /*#__PURE__*/React__default.createElement("div", {
10438
+ className: "flex gap-2 py-4 border-b border-stroke cursor-pointer hover:text-primary " + (!(categorySelected !== null && categorySelected !== void 0 && categorySelected.categoryId) ? "text-primary" : "text-textSecondary"),
10439
+ onClick: function onClick() {
10440
+ return onSelectCategory({
10441
+ categoryId: undefined
10442
+ });
10443
+ }
10444
+ }, /*#__PURE__*/React__default.createElement(io.IoIosHeartEmpty, {
10445
+ size: 24
10446
+ }), /*#__PURE__*/React__default.createElement("div", null, "T\u1EA5t c\u1EA3")), categories === null || categories === void 0 ? void 0 : categories.map(function (category, index) {
10323
10447
  return /*#__PURE__*/React__default.createElement("div", {
10324
10448
  className: "flex gap-2 py-4 border-b border-stroke cursor-pointer hover:text-primary " + ((categorySelected === null || categorySelected === void 0 ? void 0 : categorySelected.categoryId) === (category === null || category === void 0 ? void 0 : category.categoryId) ? "text-primary" : "text-textSecondary"),
10325
10449
  key: index,
@@ -10334,7 +10458,7 @@ var Products3 = function Products3(props) {
10334
10458
  }), /*#__PURE__*/React__default.createElement("div", {
10335
10459
  className: "col-span-3 text-center"
10336
10460
  }, loading ? /*#__PURE__*/React__default.createElement("div", {
10337
- className: "flex w-full justify-center p-12"
10461
+ className: "flex w-full justify-center items-center p-12 h-[700px]"
10338
10462
  }, /*#__PURE__*/React__default.createElement(Loading, {
10339
10463
  size: 32
10340
10464
  })) : (products === null || products === void 0 ? void 0 : products.length) > 0 ? /*#__PURE__*/React__default.createElement("div", {
@@ -10560,10 +10684,8 @@ var Products11 = function Products11(props) {
10560
10684
  }
10561
10685
  }, [categories]);
10562
10686
  React.useEffect(function () {
10563
- if ((products === null || products === void 0 ? void 0 : products.length) > 0) {
10564
- setProductsFilter(products);
10565
- }
10566
- }, [products]);
10687
+ setProductsFilter(products);
10688
+ }, [products, categorySelected]);
10567
10689
  var handleFilter = function handleFilter(item) {
10568
10690
  setFilterItem(item);
10569
10691
  if ((item === null || item === void 0 ? void 0 : item.value) === "sortPriceDESC") {
@@ -10580,14 +10702,18 @@ var Products11 = function Products11(props) {
10580
10702
  });
10581
10703
  setProductsFilter(_productsCopy);
10582
10704
  } else if ((item === null || item === void 0 ? void 0 : item.value) === "isHighlight") {
10583
- var _productsCopy3;
10584
- var _productsCopy2 = [].concat(products);
10585
- _productsCopy2 = (_productsCopy3 = _productsCopy2) === null || _productsCopy3 === void 0 ? void 0 : _productsCopy3.filter(function (product) {
10586
- return (product === null || product === void 0 ? void 0 : product[item === null || item === void 0 ? void 0 : item.value]) === true;
10705
+ setParams(function (prev) {
10706
+ return _extends({}, prev, {
10707
+ isHighlight: true
10708
+ });
10587
10709
  });
10588
- setProductsFilter(_productsCopy2);
10589
10710
  } else {
10590
- setProductsFilter(products);
10711
+ setParams(function (prev) {
10712
+ return _extends({}, prev, {
10713
+ categoryId: categorySelected === null || categorySelected === void 0 ? void 0 : categorySelected.categoryId,
10714
+ size: 12
10715
+ });
10716
+ });
10591
10717
  }
10592
10718
  };
10593
10719
  return /*#__PURE__*/React__default.createElement("div", {
@@ -10595,7 +10721,7 @@ var Products11 = function Products11(props) {
10595
10721
  }, /*#__PURE__*/React__default.createElement("div", {
10596
10722
  className: "md:sticky top-0 self-start"
10597
10723
  }, /*#__PURE__*/React__default.createElement("div", {
10598
- className: " flex flex-col gap-2 rounded-3xl bg-bgSecondary p-4"
10724
+ className: " flex flex-col gap-2 rounded-3xl bg-bgSecondary p-4 max-h-96 overflow-y-auto"
10599
10725
  }, categories === null || categories === void 0 ? void 0 : categories.map(function (item, index) {
10600
10726
  return /*#__PURE__*/React__default.createElement("div", {
10601
10727
  className: "px-6 py-2 hover:bg-gray-100 hover:text-primary cursor-pointer rounded-lg " + ((categorySelected === null || categorySelected === void 0 ? void 0 : categorySelected.categoryId) === (item === null || item === void 0 ? void 0 : item.categoryId) ? " bg-primary text-textButton" : ""),
@@ -10778,19 +10904,24 @@ var ProductSearch1 = function ProductSearch1(props) {
10778
10904
  setProductsFilter = _useState[1];
10779
10905
  var _useState2 = React.useState({
10780
10906
  productName: keywordValue,
10781
- size: 20
10907
+ size: 12
10782
10908
  }),
10783
10909
  params = _useState2[0],
10784
10910
  setParams = _useState2[1];
10785
10911
  var _useState3 = React.useState(true),
10786
10912
  isGetMore = _useState3[0],
10787
10913
  setIsGetMore = _useState3[1];
10914
+ var _useState4 = React.useState(false),
10915
+ isAutoGetList = _useState4[0],
10916
+ setIsAutoGetList = _useState4[1];
10788
10917
  var _ProductController = ProductController(_extends({}, props, {
10789
- params: params
10918
+ params: params,
10919
+ isAutoGetList: isAutoGetList
10790
10920
  })),
10791
10921
  products = _ProductController.products,
10792
10922
  loading = _ProductController.loading;
10793
10923
  React.useEffect(function () {
10924
+ setIsAutoGetList(true);
10794
10925
  setParams(function (prev) {
10795
10926
  return _extends({}, prev, {
10796
10927
  productName: keywordValue
@@ -10816,14 +10947,16 @@ var ProductSearch1 = function ProductSearch1(props) {
10816
10947
  });
10817
10948
  setProductsFilter(productsCopy);
10818
10949
  } else if ((item === null || item === void 0 ? void 0 : item.value) === "isHighlight") {
10819
- var _productsCopy2;
10820
- var _productsCopy = [].concat(products);
10821
- _productsCopy = (_productsCopy2 = _productsCopy) === null || _productsCopy2 === void 0 ? void 0 : _productsCopy2.filter(function (product) {
10822
- return (product === null || product === void 0 ? void 0 : product[item === null || item === void 0 ? void 0 : item.value]) === true;
10950
+ setParams(function (prev) {
10951
+ return _extends({}, prev, {
10952
+ isHighlight: true
10953
+ });
10823
10954
  });
10824
- setProductsFilter(_productsCopy);
10825
10955
  } else {
10826
- setProductsFilter(products);
10956
+ setParams({
10957
+ size: 12,
10958
+ productName: keywordValue
10959
+ });
10827
10960
  }
10828
10961
  };
10829
10962
  return /*#__PURE__*/React__default.createElement("div", {
@@ -12585,31 +12718,99 @@ var Employees1 = function Employees1(props) {
12585
12718
  };
12586
12719
 
12587
12720
  var Gallery1 = function Gallery1(props) {
12588
- var _data$data;
12721
+ var _data$data, _data$data2, _ROUTE$BOOKING;
12589
12722
  var _props$shopConfigStyl = props.shopConfigStyle,
12590
12723
  shopConfigStyle = _props$shopConfigStyl === void 0 ? {} : _props$shopConfigStyl,
12591
12724
  _props$data = props.data,
12592
12725
  data = _props$data === void 0 ? {} : _props$data,
12593
12726
  _props$SectionTitle = props.SectionTitle,
12594
- SectionTitle = _props$SectionTitle === void 0 ? null : _props$SectionTitle;
12727
+ SectionTitle = _props$SectionTitle === void 0 ? null : _props$SectionTitle,
12728
+ _props$Link = props.Link,
12729
+ Link = _props$Link === void 0 ? null : _props$Link;
12595
12730
  var _shopConfigStyle$colo = shopConfigStyle === null || shopConfigStyle === void 0 ? void 0 : shopConfigStyle.color,
12596
12731
  _shopConfigStyle$colo3 = _shopConfigStyle$colo.secondary,
12597
12732
  secondary = _shopConfigStyle$colo3 === void 0 ? "#000" : _shopConfigStyle$colo3;
12598
- console.log("Gallery1 data", data);
12733
+ var sliderRef = React.useRef(null);
12734
+ var settings = {
12735
+ infinite: true,
12736
+ slidesToShow: 3,
12737
+ slidesToScroll: 1,
12738
+ speed: 500,
12739
+ autoplay: false,
12740
+ autoplaySpeed: 4000,
12741
+ pauseOnHover: true,
12742
+ dots: false,
12743
+ swipe: true,
12744
+ touchMove: true,
12745
+ arrows: false,
12746
+ responsive: [{
12747
+ breakpoint: 1024,
12748
+ settings: {
12749
+ slidesToShow: 3,
12750
+ slidesToScroll: 1
12751
+ }
12752
+ }, {
12753
+ breakpoint: 1023,
12754
+ settings: {
12755
+ slidesToShow: 2,
12756
+ slidesToScroll: 1
12757
+ }
12758
+ }, {
12759
+ breakpoint: 635,
12760
+ settings: {
12761
+ slidesToShow: 1,
12762
+ slidesToScroll: 1
12763
+ }
12764
+ }]
12765
+ };
12766
+ var goToNext = function goToNext() {
12767
+ if (sliderRef.current) {
12768
+ sliderRef.current.slickNext();
12769
+ }
12770
+ };
12771
+ var goToPrev = function goToPrev() {
12772
+ if (sliderRef.current) {
12773
+ sliderRef.current.slickPrev();
12774
+ }
12775
+ };
12599
12776
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
12600
12777
  className: "" + SECTION_DEFAULT_CLASS
12601
12778
  }, /*#__PURE__*/React__default.createElement(SectionTitle, {
12602
12779
  data: data,
12603
12780
  shopConfigStyle: shopConfigStyle
12604
- }), /*#__PURE__*/React__default.createElement("div", {
12605
- className: "mt-6 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-1 md:gap-2"
12606
- }, data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.map(function (it, index) {
12781
+ }), (data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.length) > 0 ? /*#__PURE__*/React__default.createElement("div", {
12782
+ className: "mt-10"
12783
+ }, /*#__PURE__*/React__default.createElement(Slider, _extends({}, settings, {
12784
+ ref: sliderRef
12785
+ }), data === null || data === void 0 ? void 0 : (_data$data2 = data.data) === null || _data$data2 === void 0 ? void 0 : _data$data2.map(function (it, index) {
12607
12786
  return /*#__PURE__*/React__default.createElement("div", {
12608
- key: index
12787
+ key: index,
12788
+ className: "px-0 sm:px-4 md:px-4 pointer-events-none lg:px-6"
12609
12789
  }, /*#__PURE__*/React__default.createElement("img", {
12610
- src: it === null || it === void 0 ? void 0 : it.srcImage
12790
+ src: it === null || it === void 0 ? void 0 : it.srcImage,
12791
+ className: "rounded-2xl object-cover"
12611
12792
  }));
12612
- }))), /*#__PURE__*/React__default.createElement(Dash, {
12793
+ })), /*#__PURE__*/React__default.createElement("div", {
12794
+ className: "flex flex-col gap-6 items-center"
12795
+ }, /*#__PURE__*/React__default.createElement("div", {
12796
+ className: "flex gap-6 mt-2 items-center"
12797
+ }, /*#__PURE__*/React__default.createElement("div", {
12798
+ className: "text-primary cursor-pointer hover:scale-110 duration-200 hover:opacity-80",
12799
+ onClick: goToPrev
12800
+ }, /*#__PURE__*/React__default.createElement(hi.HiOutlineArrowNarrowLeft, {
12801
+ size: 34
12802
+ })), /*#__PURE__*/React__default.createElement("div", {
12803
+ className: "text-primary cursor-pointer hover:scale-110 duration-200 hover:opacity-80",
12804
+ onClick: goToNext
12805
+ }, /*#__PURE__*/React__default.createElement(hi.HiOutlineArrowNarrowRight, {
12806
+ size: 34
12807
+ }))), /*#__PURE__*/React__default.createElement(LinkToPage, {
12808
+ href: ROUTE === null || ROUTE === void 0 ? void 0 : (_ROUTE$BOOKING = ROUTE.BOOKING) === null || _ROUTE$BOOKING === void 0 ? void 0 : _ROUTE$BOOKING.route,
12809
+ Link: Link
12810
+ }, /*#__PURE__*/React__default.createElement(Button, {
12811
+ label: "\u0110\u1EB6T L\u1ECACH NGAY",
12812
+ shopConfigStyle: shopConfigStyle
12813
+ })))) : null), /*#__PURE__*/React__default.createElement(Dash, {
12613
12814
  color: secondary
12614
12815
  }));
12615
12816
  };
@@ -13746,7 +13947,11 @@ var SearchBar2 = function SearchBar2(props) {
13746
13947
  var _useState2 = React.useState(""),
13747
13948
  valueSearch = _useState2[0],
13748
13949
  setSearchValue = _useState2[1];
13749
- var _ProductController = ProductController(_extends({}, props)),
13950
+ var _useState3 = React.useState(false),
13951
+ isAutoGetList = _useState3[0];
13952
+ var _ProductController = ProductController(_extends({}, props, {
13953
+ isAutoGetList: isAutoGetList
13954
+ })),
13750
13955
  getProductListSearch = _ProductController.getProductListSearch;
13751
13956
  React.useEffect(function () {
13752
13957
  if (valueSearch === "") {
@@ -13791,7 +13996,7 @@ var SearchBar2 = function SearchBar2(props) {
13791
13996
  backgroundSize: "cover"
13792
13997
  }
13793
13998
  }, /*#__PURE__*/React__default.createElement("div", {
13794
- className: "w-full md:w-1/2 py-6 mx-auto px-6 flex flex-col h-full gap-4"
13999
+ className: "w-full md:w-2/3 lg:w-1/2 py-6 mx-auto md:px-6 flex flex-col h-full gap-4"
13795
14000
  }, /*#__PURE__*/React__default.createElement(Input, {
13796
14001
  icons: /*#__PURE__*/React__default.createElement(io5.IoSearchOutline, {
13797
14002
  className: "text-gray3"
@@ -13819,9 +14024,7 @@ var SearchBar2 = function SearchBar2(props) {
13819
14024
  }, item === null || item === void 0 ? void 0 : (_item$productInfo = item.productInfo) === null || _item$productInfo === void 0 ? void 0 : _item$productInfo.productName), /*#__PURE__*/React__default.createElement(ProductPrice, {
13820
14025
  product: item === null || item === void 0 ? void 0 : item.productInfo
13821
14026
  })));
13822
- })) : /*#__PURE__*/React__default.createElement("div", {
13823
- className: "mx-auto"
13824
- }, data === null || data === void 0 ? void 0 : data.sectionDescription))));
14027
+ })) : null)));
13825
14028
  };
13826
14029
 
13827
14030
  var SearchBar5 = function SearchBar5(props) {
@@ -13900,7 +14103,7 @@ var SearchBar6 = function SearchBar6(props) {
13900
14103
  }
13901
14104
  };
13902
14105
  return /*#__PURE__*/React__default.createElement("div", {
13903
- className: "w-full flex flex-col justify-center px-3 md:px-6 gap-2 lg:gap-3 items-center h-32 lg:h-44 ",
14106
+ className: "w-full flex flex-col justify-center px-3 md:px-6 gap-2 md:gap-4 lg:gap-6 items-center h-40 lg:h-52 ",
13904
14107
  style: {
13905
14108
  background: "url(" + (data === null || data === void 0 ? void 0 : (_data$data = data.data) === null || _data$data === void 0 ? void 0 : _data$data.srcImage) + ")",
13906
14109
  backgroundPosition: "center",
@@ -13911,7 +14114,7 @@ var SearchBar6 = function SearchBar6(props) {
13911
14114
  }, data === null || data === void 0 ? void 0 : (_data$data3 = data.data) === null || _data$data3 === void 0 ? void 0 : _data$data3.title) : null, data !== null && data !== void 0 && (_data$data4 = data.data) !== null && _data$data4 !== void 0 && _data$data4.description ? /*#__PURE__*/React__default.createElement("div", {
13912
14115
  className: "text-center text-textBody"
13913
14116
  }, data === null || data === void 0 ? void 0 : (_data$data5 = data.data) === null || _data$data5 === void 0 ? void 0 : _data$data5.description) : null, /*#__PURE__*/React__default.createElement("div", {
13914
- className: "flex gap-2 md:gap-4 lg:gap-6 mb-2 md:mb-0 w-full md:w-[70%] h-10 lg:h-12 lg:w-1/2"
14117
+ className: "flex gap-2 md:gap-4 lg:gap-6 mb-2 md:mb-0 w-[90%] sm:w-[70%] h-10 lg:h-12 lg:w-1/2"
13915
14118
  }, /*#__PURE__*/React__default.createElement(Input, {
13916
14119
  icons: /*#__PURE__*/React__default.createElement(io5.IoSearchOutline, {
13917
14120
  className: "text-gray3"
@@ -13942,8 +14145,9 @@ var ShopHighlights2 = function ShopHighlights2(props) {
13942
14145
  Link = _props$Link === void 0 ? null : _props$Link;
13943
14146
  var sectionData = data === null || data === void 0 ? void 0 : data.data;
13944
14147
  return /*#__PURE__*/React__default.createElement("div", {
13945
- className: SECTION_CLASS + " my-0 md:my-0 !bg-bgSecondary py-6 grid grid-cols-2 md:grid-cols-4 gap-4 lg:gap-6"
14148
+ className: SECTION_CLASS + " !mt-0 !md:mt-0 !bg-bgSecondary py-6 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4 md:gap-6"
13946
14149
  }, sectionData === null || sectionData === void 0 ? void 0 : sectionData.map(function (item, index) {
14150
+ var _item$title;
13947
14151
  return /*#__PURE__*/React__default.createElement(LinkToPage, {
13948
14152
  Link: Link,
13949
14153
  href: convertURL(item === null || item === void 0 ? void 0 : item.route) || (item === null || item === void 0 ? void 0 : item.link) || "#",
@@ -13961,7 +14165,7 @@ var ShopHighlights2 = function ShopHighlights2(props) {
13961
14165
  className: "w-16 h-16 p-3 rounded-full bg-primary"
13962
14166
  }), /*#__PURE__*/React__default.createElement("div", {
13963
14167
  className: "font-medium text-lg"
13964
- }, item === null || item === void 0 ? void 0 : item.title), /*#__PURE__*/React__default.createElement("div", {
14168
+ }, item === null || item === void 0 ? void 0 : (_item$title = item.title) === null || _item$title === void 0 ? void 0 : _item$title.toUpperCase()), /*#__PURE__*/React__default.createElement("div", {
13965
14169
  className: "flex-grow text-gray3 leading-relaxed"
13966
14170
  }, item === null || item === void 0 ? void 0 : item.description)));
13967
14171
  }));
@@ -13975,6 +14179,7 @@ var ShopHighlights5 = function ShopHighlights5(props) {
13975
14179
  return /*#__PURE__*/React__default.createElement("div", {
13976
14180
  className: SECTION_CLASS + " grid md:grid-cols-3 py-6 gap-4 lg:gap-6 bg-bgSecondary"
13977
14181
  }, sectionData === null || sectionData === void 0 ? void 0 : sectionData.map(function (item, index) {
14182
+ var _item$title;
13978
14183
  return /*#__PURE__*/React__default.createElement(LinkToPage, {
13979
14184
  href: convertURL(item === null || item === void 0 ? void 0 : item.route) || (item === null || item === void 0 ? void 0 : item.link) || "#",
13980
14185
  Link: Link
@@ -13991,8 +14196,8 @@ var ShopHighlights5 = function ShopHighlights5(props) {
13991
14196
  alt: "logo",
13992
14197
  className: "w-16 h-16 rounded-full bg-primary"
13993
14198
  }), /*#__PURE__*/React__default.createElement("div", {
13994
- className: "font-medium text-xl text-textHeading pt-2 border-t border-textHeading"
13995
- }, item === null || item === void 0 ? void 0 : item.title), /*#__PURE__*/React__default.createElement("div", {
14199
+ className: "font-semibold text-xl text-textHeading pt-2 border-t border-textHeading"
14200
+ }, item === null || item === void 0 ? void 0 : (_item$title = item.title) === null || _item$title === void 0 ? void 0 : _item$title.toUpperCase()), /*#__PURE__*/React__default.createElement("div", {
13996
14201
  className: "flex-grow leading-relaxed"
13997
14202
  }, item === null || item === void 0 ? void 0 : item.description)));
13998
14203
  }));
@@ -14104,7 +14309,7 @@ var VideoFull1 = function VideoFull1(props) {
14104
14309
  data: data,
14105
14310
  shopConfigStyle: shopConfigStyle
14106
14311
  }), youtubeVideoId ? /*#__PURE__*/React__default.createElement("div", {
14107
- className: "w-full aspect-video"
14312
+ className: "w-full aspect-video mt-6"
14108
14313
  }, /*#__PURE__*/React__default.createElement("iframe", {
14109
14314
  className: "w-full h-full",
14110
14315
  src: "https://www.youtube.com/embed/" + youtubeVideoId,