sa2kit 1.6.74 → 1.6.76

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.
@@ -2,12 +2,12 @@
2
2
 
3
3
  var React11 = require('react');
4
4
  var components = require('@tarojs/components');
5
- var Taro3 = require('@tarojs/taro');
5
+ var Taro2 = require('@tarojs/taro');
6
6
 
7
7
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
8
 
9
9
  var React11__default = /*#__PURE__*/_interopDefault(React11);
10
- var Taro3__default = /*#__PURE__*/_interopDefault(Taro3);
10
+ var Taro2__default = /*#__PURE__*/_interopDefault(Taro2);
11
11
 
12
12
  // src/showmasterpiece/ui/miniapp/components/PageHeader.tsx
13
13
  var PageHeader = ({ title, subtitle, actions, cta }) => {
@@ -40,12 +40,6 @@ function CategoryTabs({
40
40
  activeValue,
41
41
  onChange
42
42
  }) {
43
- const total = items.length || 1;
44
- const activeIndex = Math.max(
45
- items.findIndex((item) => item.value === activeValue),
46
- 0
47
- );
48
- const progressWidth = `${(activeIndex + 1) / total * 100}%`;
49
43
  return /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "mt-3" }, /* @__PURE__ */ React11__default.default.createElement(components.ScrollView, { scrollX: true, showScrollbar: true }, /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "flex gap-3 pb-1" }, items.map((item) => {
50
44
  const isActive = activeValue === item.value;
51
45
  return /* @__PURE__ */ React11__default.default.createElement(
@@ -65,7 +59,7 @@ function CategoryTabs({
65
59
  " \u4E2A"
66
60
  )
67
61
  );
68
- }))), /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "mt-2 h-2 w-full overflow-hidden rounded-full bg-prussian-blue-100" }, /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "h-full rounded-full bg-sky-500 transition-all", style: { width: progressWidth } })));
62
+ }))));
69
63
  }
70
64
  var CategoryTabs_default = CategoryTabs;
71
65
 
@@ -563,7 +557,7 @@ var createTaroExecutor = () => {
563
557
  data,
564
558
  headers
565
559
  }) => {
566
- const response = await Taro3__default.default.request({
560
+ const response = await Taro2__default.default.request({
567
561
  url,
568
562
  method,
569
563
  data,
@@ -812,18 +806,55 @@ var ShowMasterpieceMiniappPage = ({
812
806
  cancelPopup
813
807
  } = useDeadlinePopupWechat_default("showmasterpiece", "homepage_visit", apiBaseUrl);
814
808
  React11.useEffect(() => {
809
+ try {
810
+ Taro2__default.default.setStorageSync("__cy_mps_boot_ready__", true);
811
+ Taro2__default.default.setStorageSync("__cy_mps_boot_retry_once__", false);
812
+ } catch (error2) {
813
+ console.error("[ShowMasterpieceMiniappPage] boot ready sync failed", error2);
814
+ }
815
+ }, []);
816
+ React11.useEffect(() => {
817
+ const withTimeout = async (task, timeoutMs, fallbackMessage) => {
818
+ let timer;
819
+ try {
820
+ return await Promise.race([
821
+ task,
822
+ new Promise((_, reject) => {
823
+ timer = setTimeout(() => reject(new Error(fallbackMessage)), timeoutMs);
824
+ })
825
+ ]);
826
+ } finally {
827
+ if (timer) {
828
+ clearTimeout(timer);
829
+ }
830
+ }
831
+ };
815
832
  const loadCollections = async () => {
816
833
  setLoading(true);
817
834
  setError(null);
818
835
  try {
819
- const [collectionData, categoryData] = await Promise.all([
820
- getCollectionsOverview(apiBaseUrl),
821
- getCategories(apiBaseUrl)
836
+ const [collectionsResult, categoriesResult] = await Promise.allSettled([
837
+ withTimeout(getCollectionsOverview(apiBaseUrl), 12e3, "\u5546\u54C1\u6570\u636E\u52A0\u8F7D\u8D85\u65F6"),
838
+ withTimeout(getCategories(apiBaseUrl), 8e3, "\u5206\u7C7B\u6570\u636E\u52A0\u8F7D\u8D85\u65F6")
822
839
  ]);
823
- setCollections(collectionData);
824
- setCategoryOptions(Array.isArray(categoryData) ? categoryData : []);
840
+ if (collectionsResult.status === "fulfilled") {
841
+ setCollections(Array.isArray(collectionsResult.value) ? collectionsResult.value : []);
842
+ } else {
843
+ setCollections([]);
844
+ setError(collectionsResult.reason instanceof Error ? collectionsResult.reason.message : "\u5546\u54C1\u52A0\u8F7D\u5931\u8D25");
845
+ }
846
+ if (categoriesResult.status === "fulfilled") {
847
+ setCategoryOptions(Array.isArray(categoriesResult.value) ? categoriesResult.value : []);
848
+ } else {
849
+ setCategoryOptions([]);
850
+ if (collectionsResult.status === "fulfilled") {
851
+ setError("\u5206\u7C7B\u52A0\u8F7D\u5931\u8D25\uFF0C\u5DF2\u4F7F\u7528\u9ED8\u8BA4\u5206\u7C7B\u5C55\u793A");
852
+ }
853
+ }
825
854
  } catch (err) {
826
855
  setError(err instanceof Error ? err.message : "\u52A0\u8F7D\u5546\u54C1\u5931\u8D25");
856
+ setCollections([]);
857
+ setCategoryOptions([]);
827
858
  } finally {
828
859
  setLoading(false);
829
860
  }
@@ -833,7 +864,7 @@ var ShowMasterpieceMiniappPage = ({
833
864
  React11.useEffect(() => {
834
865
  setCartCount(getCart().totalQuantity);
835
866
  }, []);
836
- Taro3.useDidShow(() => {
867
+ Taro2.useDidShow(() => {
837
868
  setCartCount(getCart().totalQuantity);
838
869
  });
839
870
  React11.useEffect(() => {
@@ -881,13 +912,13 @@ var ShowMasterpieceMiniappPage = ({
881
912
  [collections, activeCategory]
882
913
  );
883
914
  const goToCart = () => {
884
- Taro3__default.default.navigateTo({ url: "/pages/cart/index" });
915
+ Taro2__default.default.navigateTo({ url: "/pages/cart/index" });
885
916
  };
886
917
  const goToHistory = () => {
887
- Taro3__default.default.navigateTo({ url: "/pages/history/index" });
918
+ Taro2__default.default.navigateTo({ url: "/pages/history/index" });
888
919
  };
889
920
  const goToTop = () => {
890
- Taro3__default.default.pageScrollTo({ scrollTop: 0, duration: 300 });
921
+ Taro2__default.default.pageScrollTo({ scrollTop: 0, duration: 300 });
891
922
  };
892
923
  const handleAddToCart = (collection) => {
893
924
  const normalizedCollection = {
@@ -896,7 +927,7 @@ var ShowMasterpieceMiniappPage = ({
896
927
  };
897
928
  const next = addToCart(normalizedCollection, 1);
898
929
  setCartCount(next.totalQuantity);
899
- Taro3__default.default.showToast({ title: "\u5DF2\u52A0\u5165\u8D2D\u7269\u8F66", icon: "success" });
930
+ Taro2__default.default.showToast({ title: "\u5DF2\u52A0\u5165\u8D2D\u7269\u8F66", icon: "success" });
900
931
  };
901
932
  return /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "min-h-screen bg-gradient-to-br from-white to-prussian-blue-100 pb-12 text-rich-black" }, /* @__PURE__ */ React11__default.default.createElement(
902
933
  PageHeader_default,
@@ -904,7 +935,7 @@ var ShowMasterpieceMiniappPage = ({
904
935
  title: "\u8471\u97F5\u9B54\u6CD5\u5C4B",
905
936
  subtitle: "\u8471\u97F5\u73AF\u4EAC\u7684\u8C37\u5B50\u7F51\u7AD9\uFF0C\u8BF7\u5927\u5BB6\u5C3D\u60C5\u9274\u8D4F\u8001\u5E08\u4EEC\u7684\u4F5C\u54C1\u5427\uFF01"
906
937
  }
907
- ), /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "mx-4 mt-4 rounded-3xl border border-prussian-blue-200 bg-white p-4 shadow-sm" }, /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "text-base font-semibold text-rich-black" }, "\u5206\u7C7B\u6D4F\u89C8"), /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "mt-1 block text-xs text-prussian-blue-600" }, "\u6309\u5206\u7C7B\u5FEB\u901F\u7B5B\u9009\u5546\u54C1\u5185\u5BB9"), /* @__PURE__ */ React11__default.default.createElement(
938
+ ), /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "mx-4 mt-4 rounded-3xl border border-teal-200 bg-teal-50 p-4 shadow-sm" }, /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "text-base font-semibold text-rich-black" }, "\u5206\u7C7B\u6D4F\u89C8"), /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "mt-1 block text-xs text-teal-700" }, "\u6309\u5206\u7C7B\u5FEB\u901F\u7B5B\u9009\u5546\u54C1\u5185\u5BB9"), /* @__PURE__ */ React11__default.default.createElement(
908
939
  CategoryTabs_default,
909
940
  {
910
941
  items: categories2,
@@ -981,7 +1012,7 @@ var CartMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
981
1012
  React11.useEffect(() => {
982
1013
  refreshCart();
983
1014
  }, []);
984
- Taro3.useDidShow(() => {
1015
+ Taro2.useDidShow(() => {
985
1016
  refreshCart();
986
1017
  });
987
1018
  const handleUpdateQuantity = (collectionId, quantity) => {
@@ -1020,11 +1051,11 @@ var CartMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1020
1051
  };
1021
1052
  const performCheckout = async () => {
1022
1053
  if (!cartItems.length) {
1023
- Taro3__default.default.showToast({ title: "\u8D2D\u7269\u8F66\u4E3A\u7A7A", icon: "none" });
1054
+ Taro2__default.default.showToast({ title: "\u8D2D\u7269\u8F66\u4E3A\u7A7A", icon: "none" });
1024
1055
  return;
1025
1056
  }
1026
1057
  if (!validateForm()) {
1027
- Taro3__default.default.showToast({ title: "\u8BF7\u5148\u4FEE\u6B63\u8868\u5355\u9519\u8BEF", icon: "none" });
1058
+ Taro2__default.default.showToast({ title: "\u8BF7\u5148\u4FEE\u6B63\u8868\u5355\u9519\u8BEF", icon: "none" });
1028
1059
  return;
1029
1060
  }
1030
1061
  setSubmitting(true);
@@ -1047,9 +1078,9 @@ var CartMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1047
1078
  setNotes("");
1048
1079
  setShippingInfo("");
1049
1080
  setFormErrors({});
1050
- Taro3__default.default.showToast({ title: "\u9884\u8BA2\u63D0\u4EA4\u6210\u529F", icon: "success" });
1081
+ Taro2__default.default.showToast({ title: "\u9884\u8BA2\u63D0\u4EA4\u6210\u529F", icon: "success" });
1051
1082
  } catch (error) {
1052
- Taro3__default.default.showToast({
1083
+ Taro2__default.default.showToast({
1053
1084
  title: error instanceof Error ? error.message : "\u63D0\u4EA4\u5931\u8D25",
1054
1085
  icon: "none"
1055
1086
  });
@@ -1060,7 +1091,7 @@ var CartMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1060
1091
  };
1061
1092
  const handleCheckout = async () => {
1062
1093
  if (!validateForm()) {
1063
- Taro3__default.default.showToast({ title: "\u8BF7\u5148\u4FEE\u6B63\u8868\u5355\u9519\u8BEF", icon: "none" });
1094
+ Taro2__default.default.showToast({ title: "\u8BF7\u5148\u4FEE\u6B63\u8868\u5355\u9519\u8BEF", icon: "none" });
1064
1095
  return;
1065
1096
  }
1066
1097
  const activePopups = await triggerCheck();
@@ -1095,7 +1126,7 @@ var CartMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1095
1126
  const handleClearCart = () => {
1096
1127
  clearCart();
1097
1128
  setCart(getCart());
1098
- Taro3__default.default.showToast({ title: "\u8D2D\u7269\u8F66\u5DF2\u6E05\u7A7A", icon: "success" });
1129
+ Taro2__default.default.showToast({ title: "\u8D2D\u7269\u8F66\u5DF2\u6E05\u7A7A", icon: "success" });
1099
1130
  };
1100
1131
  return /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "min-h-screen bg-gradient-to-br from-white to-prussian-blue-100 pb-12 text-rich-black" }, /* @__PURE__ */ React11__default.default.createElement(PageHeader_default, { title: "\u8D2D\u7269\u8F66", subtitle: "\u786E\u8BA4\u753B\u96C6\u6570\u91CF\u5E76\u63D0\u4EA4\u9884\u8BA2" }), /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "mx-4 mt-5 flex flex-col gap-4" }, cartItems.length === 0 ? /* @__PURE__ */ React11__default.default.createElement(components.View, { className: "rounded-2xl bg-white px-4 py-8 text-center text-sm text-prussian-blue-600 shadow-md" }, "\u8D2D\u7269\u8F66\u6682\u65E0\u753B\u96C6") : cartItems.map((item) => /* @__PURE__ */ React11__default.default.createElement(
1101
1132
  CartItemCard_default,
@@ -1156,10 +1187,10 @@ var CartMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1156
1187
  ), /* @__PURE__ */ React11__default.default.createElement(
1157
1188
  components.View,
1158
1189
  {
1159
- className: `flex h-11 flex-1 items-center justify-center rounded-xl ${submitting ? "bg-blue-300" : "bg-blue-600 shadow-lg"}`,
1190
+ className: `flex h-11 flex-1 items-center justify-center rounded-xl ${submitting ? "bg-teal-300" : "bg-teal-600 shadow-lg"}`,
1160
1191
  onClick: submitting ? void 0 : handleCheckout
1161
1192
  },
1162
- /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "text-sm font-semibold text-white" }, submitting ? "\u63D0\u4EA4\u4E2D..." : "\u6279\u91CF\u9884\u8BA2")
1193
+ /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "text-sm font-semibold text-white" }, submitting ? "\u63D0\u4EA4\u4E2D..." : "\u63D0\u4EA4\u7533\u8BF7")
1163
1194
  )), /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "mt-3 block text-right text-sm font-semibold text-rich-black" }, "\u5408\u8BA1\uFF1A", totalPriceLabel)), /* @__PURE__ */ React11__default.default.createElement(
1164
1195
  DeadlinePopup_default,
1165
1196
  {
@@ -1180,7 +1211,7 @@ var HistoryMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1180
1211
  const [hasSearched, setHasSearched] = React11.useState(false);
1181
1212
  const handleSearch = async () => {
1182
1213
  if (!qqNumber.trim() && !phoneNumber.trim()) {
1183
- Taro3__default.default.showToast({ title: "\u8BF7\u8F93\u5165QQ\u53F7\u6216\u624B\u673A\u53F7", icon: "none" });
1214
+ Taro2__default.default.showToast({ title: "\u8BF7\u8F93\u5165QQ\u53F7\u6216\u624B\u673A\u53F7", icon: "none" });
1184
1215
  return;
1185
1216
  }
1186
1217
  setLoading(true);
@@ -1240,7 +1271,11 @@ var HistoryMiniappPage = ({ apiBaseUrl = DEFAULT_BASE_URL }) => {
1240
1271
  ), /* @__PURE__ */ React11__default.default.createElement(
1241
1272
  components.View,
1242
1273
  {
1243
- className: `mt-5 flex h-10 w-full items-center justify-center rounded-full ${loading ? "bg-prussian-blue-300" : "bg-gradient-to-r from-moonstone to-cerulean shadow-lg"}`,
1274
+ className: "mt-5 flex h-10 w-full items-center justify-center rounded-full",
1275
+ style: {
1276
+ backgroundColor: loading ? "#93C5FD" : "#2563EB",
1277
+ boxShadow: loading ? "none" : "0 8px 20px rgba(37, 99, 235, 0.28)"
1278
+ },
1244
1279
  onClick: loading ? void 0 : handleSearch
1245
1280
  },
1246
1281
  /* @__PURE__ */ React11__default.default.createElement(components.Text, { className: "text-sm font-semibold text-white" }, loading ? "\u67E5\u8BE2\u4E2D..." : "\u67E5\u8BE2\u8BB0\u5F55")