@sunggang/ui-lib 0.4.40 → 0.4.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.
@@ -254,7 +254,7 @@ var fetchAPI = function() {
254
254
  };
255
255
  }();
256
256
 
257
- /* eslint-disable @typescript-eslint/no-explicit-any */ function _array_like_to_array(arr, len) {
257
+ function _array_like_to_array(arr, len) {
258
258
  if (len == null || len > arr.length) len = arr.length;
259
259
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
260
260
  return arr2;
@@ -465,7 +465,7 @@ var LiffProvider = function(param) {
465
465
  // userInfo 的 localStorage key
466
466
  var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
467
467
  // 從 localStorage 載入 userInfo
468
- var loadUserInfoFromStorage = React.useCallback(function() {
468
+ var loadUserInfoFromStorage = function() {
469
469
  try {
470
470
  var storedUserInfo = window.localStorage.getItem(userInfoStorageKey);
471
471
  if (storedUserInfo) {
@@ -477,20 +477,16 @@ var LiffProvider = function(param) {
477
477
  console.error("載入 userInfo 失敗:", err);
478
478
  }
479
479
  return null;
480
- }, [
481
- userInfoStorageKey
482
- ]);
480
+ };
483
481
  // 儲存 userInfo 到 localStorage
484
- var saveUserInfoToStorage = React.useCallback(function(info) {
482
+ var saveUserInfoToStorage = function(info) {
485
483
  try {
486
484
  window.localStorage.setItem(userInfoStorageKey, JSON.stringify(info));
487
485
  } catch (err) {
488
486
  console.error("儲存 userInfo 失敗:", err);
489
487
  }
490
- }, [
491
- userInfoStorageKey
492
- ]);
493
- var fetchMemberInfo = React.useCallback(function() {
488
+ };
489
+ var fetchMemberInfo = function() {
494
490
  var _ref = _async_to_generator(function(token) {
495
491
  var response, err;
496
492
  return _ts_generator(this, function(_state) {
@@ -535,23 +531,19 @@ var LiffProvider = function(param) {
535
531
  }
536
532
  });
537
533
  });
538
- return function(token) {
534
+ return function fetchMemberInfo(token) {
539
535
  return _ref.apply(this, arguments);
540
536
  };
541
- }(), [
542
- memberInfoUrl,
543
- saveUserInfoToStorage
544
- ]);
537
+ }();
545
538
  // 檢查 token 的有效性
546
- var checkTokenFunc = React.useCallback(function() {
539
+ var checkTokenFunc = function() {
547
540
  var _ref = _async_to_generator(function(token) {
548
541
  var finalToken, response, err;
549
542
  return _ts_generator(this, function(_state) {
550
543
  switch(_state.label){
551
544
  case 0:
552
545
  if (!checkTokenUrl) return [
553
- 2,
554
- false
546
+ 2
555
547
  ];
556
548
  finalToken = token.startsWith("Bearer ") ? token : "Bearer ".concat(token);
557
549
  _state.label = 1;
@@ -614,17 +606,12 @@ var LiffProvider = function(param) {
614
606
  }
615
607
  });
616
608
  });
617
- return function(token) {
609
+ return function checkTokenFunc(token) {
618
610
  return _ref.apply(this, arguments);
619
611
  };
620
- }(), [
621
- checkTokenUrl,
622
- memberInfoUrl,
623
- userInfoStorageKey,
624
- fetchMemberInfo
625
- ]);
612
+ }();
626
613
  // 登入初始化函數
627
- var loginInit = React.useCallback(function() {
614
+ var loginInit = function() {
628
615
  var _ref = _async_to_generator(function(token) {
629
616
  var _resData_data, _resData_data1, response, resData, loginToken, err;
630
617
  return _ts_generator(this, function(_state) {
@@ -709,34 +696,22 @@ var LiffProvider = function(param) {
709
696
  }
710
697
  });
711
698
  });
712
- return function(token) {
699
+ return function loginInit(token) {
713
700
  return _ref.apply(this, arguments);
714
701
  };
715
- }(), [
716
- loginUrl,
717
- ignoreCheckAddFriend,
718
- inviteCode,
719
- localStorageKey,
720
- memberInfoUrl,
721
- handleLoginError,
722
- fetchMemberInfo,
723
- saveUserInfoToStorage
724
- ]);
702
+ }();
725
703
  // 初始化 LIFF
726
- var initializeLiff = React.useCallback(function() {
704
+ var initializeLiff = function() {
727
705
  var _ref = _async_to_generator(function(isValid) {
728
- var originalFetch, customFetch, liff, redirectUri, lineToken, tempFriendship, friendship, friendFlag, error, err;
706
+ var customFetch, liff, originalFetch, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
729
707
  return _ts_generator(this, function(_state) {
730
708
  switch(_state.label){
731
709
  case 0:
732
- originalFetch = window.fetch;
733
- _state.label = 1;
734
- case 1:
735
710
  _state.trys.push([
736
- 1,
737
- 13,
738
- 14,
739
- 15
711
+ 0,
712
+ 12,
713
+ ,
714
+ 13
740
715
  ]);
741
716
  customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
742
717
  // eslint-disable-next-line no-inner-declarations
@@ -750,34 +725,15 @@ var LiffProvider = function(param) {
750
725
  4,
751
726
  Promise.resolve().then(function () { return require('./index.cjs3.js'); })
752
727
  ];
753
- case 2:
728
+ case 1:
754
729
  liff = _state.sent().liff;
730
+ originalFetch = window.fetch;
755
731
  window.fetch = customFetch;
756
732
  if (openInApp && !(liff === null || liff === void 0 ? void 0 : liff.isInClient()) && (liff === null || liff === void 0 ? void 0 : liff.getOS()) !== "web") window.location.href = "line://app/".concat(liffId);
757
- console.log("Initializing LIFF with ID:", liff);
758
- if (!!(liff === null || liff === void 0 ? void 0 : liff.isLoggedIn())) return [
759
- 3,
760
- 4
761
- ];
762
- return [
763
- 4,
764
- liff.init({
765
- liffId: liffId,
766
- withLoginOnExternalBrowser: false
767
- })
768
- ];
769
- case 3:
770
- _state.sent();
771
733
  console.log("LIFF init succeeded.");
772
- return [
773
- 3,
774
- 5
775
- ];
776
- case 4:
777
- console.log("LIFF already logged in, skip init.");
778
- _state.label = 5;
779
- case 5:
780
- // 未登入先進行登入
734
+ setLiffObject(liff);
735
+ lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
736
+ // 未登入先進行登入(呼叫 login 後立即 return,避免後續執行 init)
781
737
  if (!liff.isLoggedIn()) {
782
738
  redirectUri = customerRedirectUrl || "".concat(window.location.href);
783
739
  if (liffLogin) {
@@ -794,59 +750,73 @@ var LiffProvider = function(param) {
794
750
  liff.login({
795
751
  redirectUri: redirectUri
796
752
  });
797
- }
798
- setLiffObject(liff);
799
- lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
800
- // 已登入且 token 有效,跳過 loginInit
801
- if (isValid) {
802
- console.log("✅ Token 已驗證有效,跳過 loginInit");
803
753
  return [
804
754
  2
805
755
  ];
806
756
  }
757
+ if (!!liff.isLoggedIn()) return [
758
+ 3,
759
+ 3
760
+ ];
761
+ return [
762
+ 4,
763
+ liff.init({
764
+ liffId: liffId,
765
+ withLoginOnExternalBrowser: false
766
+ })
767
+ ];
768
+ case 2:
769
+ _state.sent();
770
+ return [
771
+ 3,
772
+ 4
773
+ ];
774
+ case 3:
775
+ console.log("LIFF 已登入,跳過 liff.init() 以避免重複的 verify/profile 呼叫。");
776
+ _state.label = 4;
777
+ case 4:
807
778
  tempFriendship = null;
808
779
  if (!lineToken) return [
809
780
  3,
810
- 12
781
+ 11
811
782
  ];
812
- _state.label = 6;
813
- case 6:
783
+ _state.label = 5;
784
+ case 5:
814
785
  _state.trys.push([
815
- 6,
816
- 9,
786
+ 5,
787
+ 8,
817
788
  ,
818
- 10
789
+ 9
819
790
  ]);
820
- if (!!(liff === null || liff === void 0 ? void 0 : liff.isLoggedIn())) return [
791
+ if (!!liff.isLoggedIn()) return [
821
792
  3,
822
- 8
793
+ 7
823
794
  ];
824
795
  return [
825
796
  4,
826
797
  liff.getFriendship()
827
798
  ];
828
- case 7:
799
+ case 6:
829
800
  friendship = _state.sent();
830
801
  friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
831
802
  setFriendship(friendFlag);
832
803
  tempFriendship = friendFlag;
833
804
  console.log("isFriendship", friendFlag);
834
- _state.label = 8;
835
- case 8:
805
+ _state.label = 7;
806
+ case 7:
836
807
  return [
837
808
  3,
838
- 10
809
+ 9
839
810
  ];
840
- case 9:
811
+ case 8:
841
812
  error = _state.sent();
842
813
  console.error("Error in liff.getFriendship():", error);
843
814
  return [
844
815
  3,
845
- 10
816
+ 9
846
817
  ];
847
- case 10:
818
+ case 9:
848
819
  console.log("isValid", isValid);
849
- // 如果是好友且 token 有效,跳過 loginInit
850
820
  if (tempFriendship && isValid) return [
851
821
  2
852
822
  ];
@@ -854,52 +824,34 @@ var LiffProvider = function(param) {
854
824
  4,
855
825
  loginInit(lineToken)
856
826
  ];
857
- case 11:
827
+ case 10:
858
828
  _state.sent();
859
- _state.label = 12;
860
- case 12:
829
+ _state.label = 11;
830
+ case 11:
861
831
  return [
862
832
  3,
863
- 15
833
+ 13
864
834
  ];
865
- case 13:
835
+ case 12:
866
836
  err = _state.sent();
867
837
  setLiffError(err.toString());
868
838
  console.log("LIFF init failed.", err);
869
839
  return [
870
840
  3,
871
- 15
841
+ 13
872
842
  ];
873
- case 14:
874
- // 確保還原全域 fetch
875
- try {
876
- window.fetch = originalFetch;
877
- } catch (e) {
878
- // ignore
879
- }
880
- return [
881
- 7
882
- ];
883
- case 15:
843
+ case 13:
884
844
  return [
885
845
  2
886
846
  ];
887
847
  }
888
848
  });
889
849
  });
890
- return function(isValid) {
850
+ return function initializeLiff(isValid) {
891
851
  return _ref.apply(this, arguments);
892
852
  };
893
- }(), [
894
- openInApp,
895
- liffId,
896
- liffLogin,
897
- loginByUser,
898
- ignoreRoute,
899
- customerRedirectUrl,
900
- loginInit
901
- ]);
902
- var accountLogin = React.useCallback(function() {
853
+ }();
854
+ var accountLogin = function() {
903
855
  var _ref = _async_to_generator(function(username, password) {
904
856
  var response, token, tokenType, finalToken, err;
905
857
  return _ts_generator(this, function(_state) {
@@ -966,14 +918,10 @@ var LiffProvider = function(param) {
966
918
  }
967
919
  });
968
920
  });
969
- return function(username, password) {
921
+ return function accountLogin(username, password) {
970
922
  return _ref.apply(this, arguments);
971
923
  };
972
- }(), [
973
- accountLoginUrl,
974
- localStorageKey,
975
- fetchMemberInfo
976
- ]);
924
+ }();
977
925
  var ensureLiffTokenValid = React.useCallback(/*#__PURE__*/ _async_to_generator(function() {
978
926
  var _parsedStore_data, _parsedStore_state, jwtTokenValue, jwtToken, parsedStore, isValid, _tmp, err;
979
927
  return _ts_generator(this, function(_state) {
@@ -1062,34 +1010,26 @@ var LiffProvider = function(param) {
1062
1010
  });
1063
1011
  }), [
1064
1012
  liffObject,
1065
- userInfoStorageKey,
1066
- checkTokenFunc,
1067
- localStorageKey,
1068
- loginData
1013
+ userInfoStorageKey
1069
1014
  ]);
1070
1015
  var normalizeToken = function(token) {
1071
1016
  var trimmed = token.trim();
1072
1017
  return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
1073
1018
  };
1074
- // searchParams 移到 useEffect 內部以避免每次 render 變動造成的依賴問題
1075
- // (會在後面的 useEffect 中建立)
1076
- var searchParams = null;
1019
+ var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
1077
1020
  // 初始載入時從 localStorage 載入 userInfo
1078
1021
  React.useEffect(function() {
1079
1022
  loadUserInfoFromStorage();
1080
- }, [
1081
- loadUserInfoFromStorage
1082
- ]);
1023
+ }, []);
1083
1024
  // 客戶端初始化 LIFF
1084
1025
  React.useEffect(function() {
1085
1026
  var checkAndInitialize = function() {
1086
1027
  var _ref = _async_to_generator(function() {
1087
- var searchParamsLocal, tokenFromQuery, finalToken, isValid, loginStore, jwtToken, _parsedStore_data, _parsedStore_state, parsedStore, isValid1, _tmp;
1028
+ var tokenFromQuery, finalToken, isValid, loginStore, jwtToken, _parsedStore_data, _parsedStore_state, parsedStore, isValid1, _tmp;
1088
1029
  return _ts_generator(this, function(_state) {
1089
1030
  switch(_state.label){
1090
1031
  case 0:
1091
- searchParamsLocal = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
1092
- tokenFromQuery = searchParamsLocal === null || searchParamsLocal === void 0 ? void 0 : searchParamsLocal.get("token");
1032
+ tokenFromQuery = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("token");
1093
1033
  if (!tokenFromQuery) return [
1094
1034
  3,
1095
1035
  2
@@ -1156,13 +1096,7 @@ var LiffProvider = function(param) {
1156
1096
  };
1157
1097
  }();
1158
1098
  checkAndInitialize();
1159
- }, [
1160
- checkTokenFunc,
1161
- initializeLiff,
1162
- localStorageKey,
1163
- loginData,
1164
- searchParams
1165
- ]);
1099
+ }, []);
1166
1100
  var contextValue = React.useMemo(function() {
1167
1101
  return {
1168
1102
  liffObject: liffObject,
@@ -1187,8 +1121,7 @@ var LiffProvider = function(param) {
1187
1121
  isFriendship,
1188
1122
  ensureLiffTokenValid,
1189
1123
  accountLogin,
1190
- loginType,
1191
- initializeLiff
1124
+ loginType
1192
1125
  ]);
1193
1126
  return /*#__PURE__*/ jsxRuntime.jsx(LiffContext.Provider, {
1194
1127
  value: contextValue,
@@ -250,7 +250,7 @@ var fetchAPI = function() {
250
250
  };
251
251
  }();
252
252
 
253
- /* eslint-disable @typescript-eslint/no-explicit-any */ function _array_like_to_array(arr, len) {
253
+ function _array_like_to_array(arr, len) {
254
254
  if (len == null || len > arr.length) len = arr.length;
255
255
  for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
256
256
  return arr2;
@@ -461,7 +461,7 @@ var LiffProvider = function(param) {
461
461
  // userInfo 的 localStorage key
462
462
  var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
463
463
  // 從 localStorage 載入 userInfo
464
- var loadUserInfoFromStorage = useCallback(function() {
464
+ var loadUserInfoFromStorage = function() {
465
465
  try {
466
466
  var storedUserInfo = window.localStorage.getItem(userInfoStorageKey);
467
467
  if (storedUserInfo) {
@@ -473,20 +473,16 @@ var LiffProvider = function(param) {
473
473
  console.error("載入 userInfo 失敗:", err);
474
474
  }
475
475
  return null;
476
- }, [
477
- userInfoStorageKey
478
- ]);
476
+ };
479
477
  // 儲存 userInfo 到 localStorage
480
- var saveUserInfoToStorage = useCallback(function(info) {
478
+ var saveUserInfoToStorage = function(info) {
481
479
  try {
482
480
  window.localStorage.setItem(userInfoStorageKey, JSON.stringify(info));
483
481
  } catch (err) {
484
482
  console.error("儲存 userInfo 失敗:", err);
485
483
  }
486
- }, [
487
- userInfoStorageKey
488
- ]);
489
- var fetchMemberInfo = useCallback(function() {
484
+ };
485
+ var fetchMemberInfo = function() {
490
486
  var _ref = _async_to_generator(function(token) {
491
487
  var response, err;
492
488
  return _ts_generator(this, function(_state) {
@@ -531,23 +527,19 @@ var LiffProvider = function(param) {
531
527
  }
532
528
  });
533
529
  });
534
- return function(token) {
530
+ return function fetchMemberInfo(token) {
535
531
  return _ref.apply(this, arguments);
536
532
  };
537
- }(), [
538
- memberInfoUrl,
539
- saveUserInfoToStorage
540
- ]);
533
+ }();
541
534
  // 檢查 token 的有效性
542
- var checkTokenFunc = useCallback(function() {
535
+ var checkTokenFunc = function() {
543
536
  var _ref = _async_to_generator(function(token) {
544
537
  var finalToken, response, err;
545
538
  return _ts_generator(this, function(_state) {
546
539
  switch(_state.label){
547
540
  case 0:
548
541
  if (!checkTokenUrl) return [
549
- 2,
550
- false
542
+ 2
551
543
  ];
552
544
  finalToken = token.startsWith("Bearer ") ? token : "Bearer ".concat(token);
553
545
  _state.label = 1;
@@ -610,17 +602,12 @@ var LiffProvider = function(param) {
610
602
  }
611
603
  });
612
604
  });
613
- return function(token) {
605
+ return function checkTokenFunc(token) {
614
606
  return _ref.apply(this, arguments);
615
607
  };
616
- }(), [
617
- checkTokenUrl,
618
- memberInfoUrl,
619
- userInfoStorageKey,
620
- fetchMemberInfo
621
- ]);
608
+ }();
622
609
  // 登入初始化函數
623
- var loginInit = useCallback(function() {
610
+ var loginInit = function() {
624
611
  var _ref = _async_to_generator(function(token) {
625
612
  var _resData_data, _resData_data1, response, resData, loginToken, err;
626
613
  return _ts_generator(this, function(_state) {
@@ -705,34 +692,22 @@ var LiffProvider = function(param) {
705
692
  }
706
693
  });
707
694
  });
708
- return function(token) {
695
+ return function loginInit(token) {
709
696
  return _ref.apply(this, arguments);
710
697
  };
711
- }(), [
712
- loginUrl,
713
- ignoreCheckAddFriend,
714
- inviteCode,
715
- localStorageKey,
716
- memberInfoUrl,
717
- handleLoginError,
718
- fetchMemberInfo,
719
- saveUserInfoToStorage
720
- ]);
698
+ }();
721
699
  // 初始化 LIFF
722
- var initializeLiff = useCallback(function() {
700
+ var initializeLiff = function() {
723
701
  var _ref = _async_to_generator(function(isValid) {
724
- var originalFetch, customFetch, liff, redirectUri, lineToken, tempFriendship, friendship, friendFlag, error, err;
702
+ var customFetch, liff, originalFetch, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
725
703
  return _ts_generator(this, function(_state) {
726
704
  switch(_state.label){
727
705
  case 0:
728
- originalFetch = window.fetch;
729
- _state.label = 1;
730
- case 1:
731
706
  _state.trys.push([
732
- 1,
733
- 13,
734
- 14,
735
- 15
707
+ 0,
708
+ 12,
709
+ ,
710
+ 13
736
711
  ]);
737
712
  customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
738
713
  // eslint-disable-next-line no-inner-declarations
@@ -746,34 +721,15 @@ var LiffProvider = function(param) {
746
721
  4,
747
722
  import('./index.esm3.js')
748
723
  ];
749
- case 2:
724
+ case 1:
750
725
  liff = _state.sent().liff;
726
+ originalFetch = window.fetch;
751
727
  window.fetch = customFetch;
752
728
  if (openInApp && !(liff === null || liff === void 0 ? void 0 : liff.isInClient()) && (liff === null || liff === void 0 ? void 0 : liff.getOS()) !== "web") window.location.href = "line://app/".concat(liffId);
753
- console.log("Initializing LIFF with ID:", liff);
754
- if (!!(liff === null || liff === void 0 ? void 0 : liff.isLoggedIn())) return [
755
- 3,
756
- 4
757
- ];
758
- return [
759
- 4,
760
- liff.init({
761
- liffId: liffId,
762
- withLoginOnExternalBrowser: false
763
- })
764
- ];
765
- case 3:
766
- _state.sent();
767
729
  console.log("LIFF init succeeded.");
768
- return [
769
- 3,
770
- 5
771
- ];
772
- case 4:
773
- console.log("LIFF already logged in, skip init.");
774
- _state.label = 5;
775
- case 5:
776
- // 未登入先進行登入
730
+ setLiffObject(liff);
731
+ lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
732
+ // 未登入先進行登入(呼叫 login 後立即 return,避免後續執行 init)
777
733
  if (!liff.isLoggedIn()) {
778
734
  redirectUri = customerRedirectUrl || "".concat(window.location.href);
779
735
  if (liffLogin) {
@@ -790,59 +746,73 @@ var LiffProvider = function(param) {
790
746
  liff.login({
791
747
  redirectUri: redirectUri
792
748
  });
793
- }
794
- setLiffObject(liff);
795
- lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
796
- // 已登入且 token 有效,跳過 loginInit
797
- if (isValid) {
798
- console.log("✅ Token 已驗證有效,跳過 loginInit");
799
749
  return [
800
750
  2
801
751
  ];
802
752
  }
753
+ if (!!liff.isLoggedIn()) return [
754
+ 3,
755
+ 3
756
+ ];
757
+ return [
758
+ 4,
759
+ liff.init({
760
+ liffId: liffId,
761
+ withLoginOnExternalBrowser: false
762
+ })
763
+ ];
764
+ case 2:
765
+ _state.sent();
766
+ return [
767
+ 3,
768
+ 4
769
+ ];
770
+ case 3:
771
+ console.log("LIFF 已登入,跳過 liff.init() 以避免重複的 verify/profile 呼叫。");
772
+ _state.label = 4;
773
+ case 4:
803
774
  tempFriendship = null;
804
775
  if (!lineToken) return [
805
776
  3,
806
- 12
777
+ 11
807
778
  ];
808
- _state.label = 6;
809
- case 6:
779
+ _state.label = 5;
780
+ case 5:
810
781
  _state.trys.push([
811
- 6,
812
- 9,
782
+ 5,
783
+ 8,
813
784
  ,
814
- 10
785
+ 9
815
786
  ]);
816
- if (!!(liff === null || liff === void 0 ? void 0 : liff.isLoggedIn())) return [
787
+ if (!!liff.isLoggedIn()) return [
817
788
  3,
818
- 8
789
+ 7
819
790
  ];
820
791
  return [
821
792
  4,
822
793
  liff.getFriendship()
823
794
  ];
824
- case 7:
795
+ case 6:
825
796
  friendship = _state.sent();
826
797
  friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
827
798
  setFriendship(friendFlag);
828
799
  tempFriendship = friendFlag;
829
800
  console.log("isFriendship", friendFlag);
830
- _state.label = 8;
831
- case 8:
801
+ _state.label = 7;
802
+ case 7:
832
803
  return [
833
804
  3,
834
- 10
805
+ 9
835
806
  ];
836
- case 9:
807
+ case 8:
837
808
  error = _state.sent();
838
809
  console.error("Error in liff.getFriendship():", error);
839
810
  return [
840
811
  3,
841
- 10
812
+ 9
842
813
  ];
843
- case 10:
814
+ case 9:
844
815
  console.log("isValid", isValid);
845
- // 如果是好友且 token 有效,跳過 loginInit
846
816
  if (tempFriendship && isValid) return [
847
817
  2
848
818
  ];
@@ -850,52 +820,34 @@ var LiffProvider = function(param) {
850
820
  4,
851
821
  loginInit(lineToken)
852
822
  ];
853
- case 11:
823
+ case 10:
854
824
  _state.sent();
855
- _state.label = 12;
856
- case 12:
825
+ _state.label = 11;
826
+ case 11:
857
827
  return [
858
828
  3,
859
- 15
829
+ 13
860
830
  ];
861
- case 13:
831
+ case 12:
862
832
  err = _state.sent();
863
833
  setLiffError(err.toString());
864
834
  console.log("LIFF init failed.", err);
865
835
  return [
866
836
  3,
867
- 15
837
+ 13
868
838
  ];
869
- case 14:
870
- // 確保還原全域 fetch
871
- try {
872
- window.fetch = originalFetch;
873
- } catch (e) {
874
- // ignore
875
- }
876
- return [
877
- 7
878
- ];
879
- case 15:
839
+ case 13:
880
840
  return [
881
841
  2
882
842
  ];
883
843
  }
884
844
  });
885
845
  });
886
- return function(isValid) {
846
+ return function initializeLiff(isValid) {
887
847
  return _ref.apply(this, arguments);
888
848
  };
889
- }(), [
890
- openInApp,
891
- liffId,
892
- liffLogin,
893
- loginByUser,
894
- ignoreRoute,
895
- customerRedirectUrl,
896
- loginInit
897
- ]);
898
- var accountLogin = useCallback(function() {
849
+ }();
850
+ var accountLogin = function() {
899
851
  var _ref = _async_to_generator(function(username, password) {
900
852
  var response, token, tokenType, finalToken, err;
901
853
  return _ts_generator(this, function(_state) {
@@ -962,14 +914,10 @@ var LiffProvider = function(param) {
962
914
  }
963
915
  });
964
916
  });
965
- return function(username, password) {
917
+ return function accountLogin(username, password) {
966
918
  return _ref.apply(this, arguments);
967
919
  };
968
- }(), [
969
- accountLoginUrl,
970
- localStorageKey,
971
- fetchMemberInfo
972
- ]);
920
+ }();
973
921
  var ensureLiffTokenValid = useCallback(/*#__PURE__*/ _async_to_generator(function() {
974
922
  var _parsedStore_data, _parsedStore_state, jwtTokenValue, jwtToken, parsedStore, isValid, _tmp, err;
975
923
  return _ts_generator(this, function(_state) {
@@ -1058,34 +1006,26 @@ var LiffProvider = function(param) {
1058
1006
  });
1059
1007
  }), [
1060
1008
  liffObject,
1061
- userInfoStorageKey,
1062
- checkTokenFunc,
1063
- localStorageKey,
1064
- loginData
1009
+ userInfoStorageKey
1065
1010
  ]);
1066
1011
  var normalizeToken = function(token) {
1067
1012
  var trimmed = token.trim();
1068
1013
  return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
1069
1014
  };
1070
- // searchParams 移到 useEffect 內部以避免每次 render 變動造成的依賴問題
1071
- // (會在後面的 useEffect 中建立)
1072
- var searchParams = null;
1015
+ var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
1073
1016
  // 初始載入時從 localStorage 載入 userInfo
1074
1017
  useEffect(function() {
1075
1018
  loadUserInfoFromStorage();
1076
- }, [
1077
- loadUserInfoFromStorage
1078
- ]);
1019
+ }, []);
1079
1020
  // 客戶端初始化 LIFF
1080
1021
  useEffect(function() {
1081
1022
  var checkAndInitialize = function() {
1082
1023
  var _ref = _async_to_generator(function() {
1083
- var searchParamsLocal, tokenFromQuery, finalToken, isValid, loginStore, jwtToken, _parsedStore_data, _parsedStore_state, parsedStore, isValid1, _tmp;
1024
+ var tokenFromQuery, finalToken, isValid, loginStore, jwtToken, _parsedStore_data, _parsedStore_state, parsedStore, isValid1, _tmp;
1084
1025
  return _ts_generator(this, function(_state) {
1085
1026
  switch(_state.label){
1086
1027
  case 0:
1087
- searchParamsLocal = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
1088
- tokenFromQuery = searchParamsLocal === null || searchParamsLocal === void 0 ? void 0 : searchParamsLocal.get("token");
1028
+ tokenFromQuery = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("token");
1089
1029
  if (!tokenFromQuery) return [
1090
1030
  3,
1091
1031
  2
@@ -1152,13 +1092,7 @@ var LiffProvider = function(param) {
1152
1092
  };
1153
1093
  }();
1154
1094
  checkAndInitialize();
1155
- }, [
1156
- checkTokenFunc,
1157
- initializeLiff,
1158
- localStorageKey,
1159
- loginData,
1160
- searchParams
1161
- ]);
1095
+ }, []);
1162
1096
  var contextValue = useMemo(function() {
1163
1097
  return {
1164
1098
  liffObject: liffObject,
@@ -1183,8 +1117,7 @@ var LiffProvider = function(param) {
1183
1117
  isFriendship,
1184
1118
  ensureLiffTokenValid,
1185
1119
  accountLogin,
1186
- loginType,
1187
- initializeLiff
1120
+ loginType
1188
1121
  ]);
1189
1122
  return /*#__PURE__*/ jsx(LiffContext.Provider, {
1190
1123
  value: contextValue,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunggang/ui-lib",
3
- "version": "0.4.40",
3
+ "version": "0.4.42",
4
4
  "sideEffects": [
5
5
  "*.css",
6
6
  "./src/style.css",