s-platform-landing-section 0.1.10-alpha.11 → 0.1.10-alpha.12

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.
@@ -1,4 +1,4 @@
1
- import React__default, { useState, useRef, useEffect, createElement, forwardRef, useImperativeHandle, memo, useCallback } from 'react';
1
+ import React__default, { useState, useRef, useEffect, createElement, forwardRef, useImperativeHandle, memo } from 'react';
2
2
  import { IoCartOutline, IoChevronDownOutline, IoInformationCircleOutline, IoLogOutOutline, IoLocationOutline, IoChevronBackOutline, IoChevronForwardOutline, IoCallOutline } from 'react-icons/io5';
3
3
  import { FaUserCircle, FaPhone, FaChevronLeft, FaChevronRight, FaAngleUp, FaAngleDown, FaCheckCircle, FaArrowLeft, FaArrowRight as FaArrowRight$1, FaFacebookSquare, FaFacebookMessenger, FaFacebookF } from 'react-icons/fa';
4
4
  import { FiMenu } from 'react-icons/fi';
@@ -6,7 +6,7 @@ import { RxCross2 } from 'react-icons/rx';
6
6
  import { PiHandbagSimpleLight } from 'react-icons/pi';
7
7
  import { CiSearch } from 'react-icons/ci';
8
8
  import { BsFilterLeft, BsCurrencyDollar } from 'react-icons/bs';
9
- import { FaMinus, FaPlus, FaArrowsRotate, FaStar, FaRegStarHalfStroke, FaRegStar } from 'react-icons/fa6';
9
+ import { FaMinus, FaRegEyeSlash, FaPlus, FaArrowsRotate, FaStar, FaRegStarHalfStroke, FaRegStar } from 'react-icons/fa6';
10
10
  import { LuSearch } from 'react-icons/lu';
11
11
  import { IoMdCheckmark, IoIosHeartEmpty } from 'react-icons/io';
12
12
  import DatePicker from 'react-datepicker';
@@ -7347,13 +7347,18 @@ var Input = forwardRef(function (props, ref) {
7347
7347
  _props$min = props.min,
7348
7348
  min = _props$min === void 0 ? 0 : _props$min,
7349
7349
  _props$max = props.max,
7350
- max = _props$max === void 0 ? null : _props$max;
7350
+ max = _props$max === void 0 ? null : _props$max,
7351
+ _props$isHidden = props.isHidden,
7352
+ isHidden = _props$isHidden === void 0 ? false : _props$isHidden;
7351
7353
  var _useState = useState(defaultValue),
7352
7354
  value = _useState[0],
7353
7355
  _setValue = _useState[1];
7354
7356
  var _useState2 = useState(""),
7355
7357
  error = _useState2[0],
7356
7358
  _setError = _useState2[1];
7359
+ var _useState3 = useState(type),
7360
+ typeInput = _useState3[0],
7361
+ setTypeInput = _useState3[1];
7357
7362
  var refInput = useRef();
7358
7363
  useImperativeHandle(ref, function () {
7359
7364
  return {
@@ -7384,6 +7389,10 @@ var Input = forwardRef(function (props, ref) {
7384
7389
  _setError(e === null || e === void 0 ? void 0 : e.message);
7385
7390
  count++;
7386
7391
  break;
7392
+ } else if ((e === null || e === void 0 ? void 0 : e.type) === "validate" && !(e !== null && e !== void 0 && e.validate)) {
7393
+ _setError(e === null || e === void 0 ? void 0 : e.message);
7394
+ count++;
7395
+ break;
7387
7396
  }
7388
7397
  }
7389
7398
  if (count) {
@@ -7408,6 +7417,11 @@ var Input = forwardRef(function (props, ref) {
7408
7417
  onChange === null || onChange === void 0 ? void 0 : onChange(newValue);
7409
7418
  }
7410
7419
  };
7420
+ var changeHidden = function changeHidden() {
7421
+ if (typeInput === "text") setTypeInput("password");else {
7422
+ setTypeInput("text");
7423
+ }
7424
+ };
7411
7425
  var _className = "h-10 py-1 px-2 border border-stroke rounded " + className;
7412
7426
  var _inputClassName = (isQuantity ? "text-center w-12" : "") + " focus:outline-none focus:ring-0 " + inputClassName;
7413
7427
  var required = !!(rules !== null && rules !== void 0 && rules.find(function (e) {
@@ -7427,7 +7441,7 @@ var Input = forwardRef(function (props, ref) {
7427
7441
  return changeQuantity(-1);
7428
7442
  }
7429
7443
  }, /*#__PURE__*/React__default.createElement(FaMinus, null)) : null, /*#__PURE__*/React__default.createElement("input", {
7430
- type: type,
7444
+ type: typeInput,
7431
7445
  name: name,
7432
7446
  value: value,
7433
7447
  placeholder: placeholder,
@@ -7435,7 +7449,13 @@ var Input = forwardRef(function (props, ref) {
7435
7449
  required: required,
7436
7450
  className: _inputClassName,
7437
7451
  ref: refInput
7438
- }), isQuantity ? /*#__PURE__*/React__default.createElement("button", {
7452
+ }), isHidden ? /*#__PURE__*/React__default.createElement("button", {
7453
+ onClick: function onClick() {
7454
+ changeHidden();
7455
+ }
7456
+ }, /*#__PURE__*/React__default.createElement(FaRegEyeSlash, {
7457
+ className: "font-semibold"
7458
+ })) : null, isQuantity ? /*#__PURE__*/React__default.createElement("button", {
7439
7459
  onClick: function onClick() {
7440
7460
  return changeQuantity(1);
7441
7461
  }
@@ -7445,7 +7465,6 @@ var Input = forwardRef(function (props, ref) {
7445
7465
  });
7446
7466
 
7447
7467
  var Select = forwardRef(function (props, ref) {
7448
- var _Object$values;
7449
7468
  var _props$label = props.label,
7450
7469
  label = _props$label === void 0 ? "" : _props$label,
7451
7470
  _props$labelClassName = props.labelClassName,
@@ -7498,13 +7517,6 @@ var Select = forwardRef(function (props, ref) {
7498
7517
  dropdownPosition = _useState6[0],
7499
7518
  setDropdownPosition = _useState6[1];
7500
7519
  var inputRef = useRef(null);
7501
- useEffect(function () {
7502
- if (isMulti) return;else {
7503
- setIsOpen(false);
7504
- setInputSearch("");
7505
- setListOptions(options);
7506
- }
7507
- }, [value]);
7508
7520
  useEffect(function () {
7509
7521
  if (isMulti) setValue(defaultValue);
7510
7522
  }, [defaultValue]);
@@ -7616,7 +7628,10 @@ var Select = forwardRef(function (props, ref) {
7616
7628
  return (value === null || value === void 0 ? void 0 : value.value) == valueId;
7617
7629
  };
7618
7630
  var handleSelection = function handleSelection(item) {
7619
- if (!isMulti) setValue(item);
7631
+ if (!isMulti) {
7632
+ setValue(item);
7633
+ setIsOpen(false);
7634
+ }
7620
7635
  onClick === null || onClick === void 0 ? void 0 : onClick(item);
7621
7636
  };
7622
7637
  var handleDeleteSelection = function handleDeleteSelection(e, item) {
@@ -7644,14 +7659,12 @@ var Select = forwardRef(function (props, ref) {
7644
7659
  className: "flex justify-between items-center w-full"
7645
7660
  }, isEmpty(value) || isMulti ? /*#__PURE__*/React__default.createElement("div", {
7646
7661
  className: "text-gray3 line-clamp-1"
7647
- }, placeholder) : renderItem && !isEmpty(value) && !isMulti ? /*#__PURE__*/React__default.createElement("div", {
7648
- className: "w-full",
7662
+ }, placeholder) : /*#__PURE__*/React__default.createElement("div", {
7663
+ className: "w-full text-start pointer-events-none",
7649
7664
  dangerouslySetInnerHTML: {
7650
- __html: Object === null || Object === void 0 ? void 0 : (_Object$values = Object.values(value)) === null || _Object$values === void 0 ? void 0 : _Object$values[0]
7665
+ __html: value === null || value === void 0 ? void 0 : value.label
7651
7666
  }
7652
- }) : /*#__PURE__*/React__default.createElement("div", {
7653
- className: "line-clamp-1"
7654
- }, value === null || value === void 0 ? void 0 : value.label), isButtonDelete && !isEmpty(value) ? /*#__PURE__*/React__default.createElement("div", {
7667
+ }), isButtonDelete && !isEmpty(value) ? /*#__PURE__*/React__default.createElement("div", {
7655
7668
  onClick: function onClick(e) {
7656
7669
  handleDeleteSelection(e, value);
7657
7670
  }
@@ -7810,13 +7823,18 @@ var InputPhoneNumber = forwardRef(function (props, ref) {
7810
7823
  inputClassName = _props$inputClassName === void 0 ? "" : _props$inputClassName,
7811
7824
  _props$labelClassName = props.labelClassName,
7812
7825
  labelClassName = _props$labelClassName === void 0 ? "" : _props$labelClassName,
7813
- buttonClassName = props.buttonClassName;
7814
- var _useState = useState(defaultValue),
7826
+ _props$options = props.options,
7827
+ options = _props$options === void 0 ? [{
7828
+ label: "<svg width=\"20\" height=\"20\" viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" class=\"iconify iconify--twemoji\" preserveAspectRatio=\"xMidYMid meet\"><path fill=\"#DA251D\" d=\"M32 5H4a4 4 0 0 0-4 4v18a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4V9a4 4 0 0 0-4-4z\"></path><path fill=\"#FF0\" d=\"M19.753 16.037L18 10.642l-1.753 5.395h-5.672l4.589 3.333l-1.753 5.395L18 21.431l4.589 3.334l-1.753-5.395l4.589-3.333z\"></path></svg>",
7829
+ country: "Việt Nam",
7830
+ value: "+84"
7831
+ }] : _props$options;
7832
+ var _useState = useState(""),
7815
7833
  value = _useState[0],
7816
7834
  _setValue = _useState[1];
7817
7835
  var _useState2 = useState({
7818
- icons: "<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n<svg width=\"20\" height=\"20\" viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" class=\"iconify iconify--twemoji\" preserveAspectRatio=\"xMidYMid meet\"><path fill=\"#DA251D\" d=\"M32 5H4a4 4 0 0 0-4 4v18a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4V9a4 4 0 0 0-4-4z\"></path><path fill=\"#FF0\" d=\"M19.753 16.037L18 10.642l-1.753 5.395h-5.672l4.589 3.333l-1.753 5.395L18 21.431l4.589 3.334l-1.753-5.395l4.589-3.333z\"></path></svg>",
7819
- label: "Việt Nam",
7836
+ label: "<svg width=\"20\" height=\"20\" viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" class=\"iconify iconify--twemoji\" preserveAspectRatio=\"xMidYMid meet\"><path fill=\"#DA251D\" d=\"M32 5H4a4 4 0 0 0-4 4v18a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4V9a4 4 0 0 0-4-4z\"></path><path fill=\"#FF0\" d=\"M19.753 16.037L18 10.642l-1.753 5.395h-5.672l4.589 3.333l-1.753 5.395L18 21.431l4.589 3.334l-1.753-5.395l4.589-3.333z\"></path></svg>",
7837
+ country: "Việt Nam",
7820
7838
  value: "+84"
7821
7839
  }),
7822
7840
  countryCode = _useState2[0],
@@ -7824,6 +7842,11 @@ var InputPhoneNumber = forwardRef(function (props, ref) {
7824
7842
  var _useState3 = useState(""),
7825
7843
  error = _useState3[0],
7826
7844
  _setError = _useState3[1];
7845
+ useEffect(function () {
7846
+ if (defaultValue) {
7847
+ _setValue("+" + defaultValue);
7848
+ }
7849
+ }, []);
7827
7850
  var handleOnChange = function handleOnChange(event) {
7828
7851
  var value = event.target.value;
7829
7852
  _setValue(value);
@@ -7838,8 +7861,10 @@ var InputPhoneNumber = forwardRef(function (props, ref) {
7838
7861
  return _setValue(text);
7839
7862
  },
7840
7863
  getValue: function getValue() {
7841
- var phoneNumber = (countryCode === null || countryCode === void 0 ? void 0 : countryCode.value) + (value === null || value === void 0 ? void 0 : value.slice(1));
7842
- return phoneNumber;
7864
+ if (!(value !== null && value !== void 0 && value.startsWith(countryCode === null || countryCode === void 0 ? void 0 : countryCode.value))) {
7865
+ return (countryCode === null || countryCode === void 0 ? void 0 : countryCode.value) + (value === null || value === void 0 ? void 0 : value.replace(/^0/, ''));
7866
+ }
7867
+ return value;
7843
7868
  },
7844
7869
  setError: function setError(err) {
7845
7870
  return _setError(err);
@@ -7875,40 +7900,36 @@ var InputPhoneNumber = forwardRef(function (props, ref) {
7875
7900
  className: "text-danger"
7876
7901
  }, " *") : null;
7877
7902
  var _inputClassName = "h-full w-full px-2 focus:outline-none focus:ring-0 " + inputClassName;
7878
- var data = useCallback([{
7879
- icons: "<?xml version=\"1.0\" encoding=\"utf-8\"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->\n<svg width=\"20\" height=\"20\" viewBox=\"0 0 36 36\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" aria-hidden=\"true\" role=\"img\" class=\"iconify iconify--twemoji\" preserveAspectRatio=\"xMidYMid meet\"><path fill=\"#DA251D\" d=\"M32 5H4a4 4 0 0 0-4 4v18a4 4 0 0 0 4 4h28a4 4 0 0 0 4-4V9a4 4 0 0 0-4-4z\"></path><path fill=\"#FF0\" d=\"M19.753 16.037L18 10.642l-1.753 5.395h-5.672l4.589 3.333l-1.753 5.395L18 21.431l4.589 3.334l-1.753-5.395l4.589-3.333z\"></path></svg>",
7880
- label: "Việt Nam",
7881
- value: "+84"
7882
- }], []);
7883
7903
  return /*#__PURE__*/React__default.createElement("div", {
7884
7904
  className: "flex flex-col " + wrapClassName
7885
7905
  }, label ? /*#__PURE__*/React__default.createElement("label", {
7886
7906
  className: "mb-1 " + labelClassName
7887
7907
  }, label, labelRequired) : null, /*#__PURE__*/React__default.createElement("div", {
7888
- className: "flex items-center h-10 rounded-lg border px-2 py-1 " + className
7908
+ className: "flex items-center h-10 rounded-lg border pr-2 py-1 " + className
7889
7909
  }, /*#__PURE__*/React__default.createElement("button", {
7890
- className: "flex items-center border-r-2 " + buttonClassName
7910
+ className: "border-r-2"
7891
7911
  }, /*#__PURE__*/React__default.createElement(Select$1, {
7892
7912
  className: 'w-max border-0',
7893
7913
  defaultValue: countryCode,
7894
- options: data,
7914
+ options: options,
7895
7915
  optionClassName: "w-max",
7896
7916
  placeholder: "+84",
7897
7917
  onClick: setCountryCode,
7898
- selectClassName: "ps-0 pr-1",
7918
+ selectClassName: "ps-2 pr-1",
7899
7919
  renderItem: function renderItem(item) {
7900
7920
  return /*#__PURE__*/React__default.createElement("div", {
7901
7921
  className: "flex gap-3 items-center w-full"
7902
7922
  }, /*#__PURE__*/React__default.createElement("div", {
7903
7923
  dangerouslySetInnerHTML: {
7904
- __html: item === null || item === void 0 ? void 0 : item.icons
7924
+ __html: item === null || item === void 0 ? void 0 : item.label
7905
7925
  }
7906
7926
  }), /*#__PURE__*/React__default.createElement("div", {
7907
7927
  className: "text-start flex-1 text-sm"
7908
- }, item === null || item === void 0 ? void 0 : item.label), /*#__PURE__*/React__default.createElement("div", {
7928
+ }, item === null || item === void 0 ? void 0 : item.country), /*#__PURE__*/React__default.createElement("div", {
7909
7929
  className: "text-gray3"
7910
7930
  }, item === null || item === void 0 ? void 0 : item.value));
7911
- }
7931
+ },
7932
+ wrapClassName: "w-full"
7912
7933
  })), /*#__PURE__*/React__default.createElement("input", {
7913
7934
  type: type,
7914
7935
  name: name,
@@ -7931,7 +7952,7 @@ var formatCurrency = function formatCurrency(amount) {
7931
7952
  return formattedAmount + " \u20AB";
7932
7953
  };
7933
7954
  var pattern = {
7934
- phoneNumberPattern: /^0[0-9]{9}$/
7955
+ phoneNumberPattern: /^(?:\+84|0)\d{9}$/
7935
7956
  };
7936
7957
  var numberPattern = /^\d+$/;
7937
7958