@sunggang/ui-lib 0.4.50 → 0.4.52

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.
@@ -465,7 +465,7 @@ var LiffProvider = function(param) {
465
465
  var _useState7 = _sliced_to_array(React.useState(null), 2), loginType = _useState7[0], setLoginType = _useState7[1];
466
466
  // userInfo 的 localStorage key
467
467
  var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
468
- // liff userInfo 的 localStorage key
468
+ // liff profile 的 localStorage key
469
469
  var liffUserInfoStorageKey = "".concat(localStorageKey, "-liffUserInfo");
470
470
  // 從 localStorage 載入 userInfo
471
471
  var loadUserInfoFromStorage = function() {
@@ -489,7 +489,7 @@ var LiffProvider = function(param) {
489
489
  console.error("儲存 userInfo 失敗:", err);
490
490
  }
491
491
  };
492
- // 從 localStorage 載入 LIFF userInfo
492
+ // 從 localStorage 載入 LIFF profile
493
493
  var loadLiffUserInfoFromStorage = function() {
494
494
  try {
495
495
  var stored = window.localStorage.getItem(liffUserInfoStorageKey);
@@ -503,7 +503,7 @@ var LiffProvider = function(param) {
503
503
  }
504
504
  return null;
505
505
  };
506
- // 儲存 LIFF userInfo 到 localStorage
506
+ // 儲存 LIFF profile 到 localStorage
507
507
  var saveLiffUserInfoToStorage = function(info) {
508
508
  try {
509
509
  window.localStorage.setItem(liffUserInfoStorageKey, JSON.stringify(info));
@@ -728,15 +728,15 @@ var LiffProvider = function(param) {
728
728
  // 初始化 LIFF
729
729
  var initializeLiff = function() {
730
730
  var _ref = _async_to_generator(function(isValid) {
731
- var customFetch, liff, redirectUri, originalFetch, profile, profileErr, e, msg, lineToken, tempFriendship, friendship, friendFlag, error, err;
731
+ var customFetch, liff, originalFetch, profile, profileErr, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
732
732
  return _ts_generator(this, function(_state) {
733
733
  switch(_state.label){
734
734
  case 0:
735
735
  _state.trys.push([
736
736
  0,
737
- 19,
737
+ 13,
738
738
  ,
739
- 20
739
+ 14
740
740
  ]);
741
741
  customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
742
742
  // eslint-disable-next-line no-inner-declarations
@@ -752,60 +752,9 @@ var LiffProvider = function(param) {
752
752
  ];
753
753
  case 1:
754
754
  liff = _state.sent().liff;
755
- // 未登入先進行登入
756
- if (!liff.isLoggedIn()) {
757
- redirectUri = customerRedirectUrl || "".concat(window.location.href);
758
- if (liffLogin) {
759
- liff.login({
760
- redirectUri: redirectUri
761
- });
762
- return [
763
- 2
764
- ];
765
- }
766
- if (loginByUser || ignoreRoute) return [
767
- 2
768
- ];
769
- liff.login({
770
- redirectUri: redirectUri
771
- });
772
- return [
773
- 2
774
- ];
775
- }
776
755
  originalFetch = window.fetch;
777
756
  window.fetch = customFetch;
778
757
  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);
779
- if (!!liff.isLoggedIn()) return [
780
- 3,
781
- 11
782
- ];
783
- if (!(!liffId || typeof liffId !== "string" || liffId.trim() === "")) return [
784
- 3,
785
- 2
786
- ];
787
- console.warn("liffId 未提供或為空字串,跳過 liff.init()。");
788
- return [
789
- 3,
790
- 11
791
- ];
792
- case 2:
793
- _state.trys.push([
794
- 2,
795
- 10,
796
- ,
797
- 11
798
- ]);
799
- if (!(typeof liff.init !== "function")) return [
800
- 3,
801
- 3
802
- ];
803
- console.warn("liff.init 尚未提供,跳過 init。");
804
- return [
805
- 3,
806
- 9
807
- ];
808
- case 3:
809
758
  return [
810
759
  4,
811
760
  liff.init({
@@ -813,107 +762,92 @@ var LiffProvider = function(param) {
813
762
  withLoginOnExternalBrowser: false
814
763
  })
815
764
  ];
816
- case 4:
765
+ case 2:
817
766
  _state.sent();
818
767
  console.log("LIFF init succeeded.");
819
768
  setLiffObject(liff);
820
- _state.label = 5;
821
- case 5:
769
+ _state.label = 3;
770
+ case 3:
822
771
  _state.trys.push([
772
+ 3,
823
773
  5,
824
- 7,
825
774
  ,
826
- 8
775
+ 6
827
776
  ]);
828
777
  return [
829
778
  4,
830
779
  liff.getProfile()
831
780
  ];
832
- case 6:
781
+ case 4:
833
782
  profile = _state.sent();
834
783
  setLiffProfile(profile);
835
784
  saveLiffUserInfoToStorage(profile);
836
785
  return [
837
786
  3,
838
- 8
787
+ 6
839
788
  ];
840
- case 7:
789
+ case 5:
841
790
  profileErr = _state.sent();
842
- // 取得 profile 失敗不致命,後續可由 caller 取得
843
- console.warn("取得 LIFF profile 失敗(非致命):", profileErr);
844
- return [
845
- 3,
846
- 8
847
- ];
848
- case 8:
849
- // 標記為已初始化(persist),避免 redirect 回來時重複 init
850
- try {
851
- window.localStorage.setItem("".concat(localStorageKey, "-liffInitialized"), "1");
852
- } catch (e) {
853
- // ignore
854
- }
855
- _state.label = 9;
856
- case 9:
857
- return [
858
- 3,
859
- 11
860
- ];
861
- case 10:
862
- e = _state.sent();
863
- // 如果是缺少 liffId 的 SDK 錯誤,安靜短路並不要把錯誤曝露給使用者
864
- msg = (e === null || e === void 0 ? void 0 : e.message) || String(e);
865
- if (typeof msg === "string" && msg.includes("liffId is necessary")) {
866
- console.warn("略過 liff.init 錯誤(缺少 liffId):", msg);
867
- } else {
868
- throw e;
869
- }
791
+ console.warn("取得 LIFF profile 失敗(非致命):", profileErr);
870
792
  return [
871
793
  3,
872
- 11
794
+ 6
873
795
  ];
874
- case 11:
796
+ case 6:
875
797
  lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
798
+ // 未登入先進行登入
799
+ if (!liff.isLoggedIn()) {
800
+ redirectUri = customerRedirectUrl || "".concat(window.location.href);
801
+ if (liffLogin) {
802
+ liff.login({
803
+ redirectUri: redirectUri
804
+ });
805
+ return [
806
+ 2
807
+ ];
808
+ }
809
+ if (loginByUser || ignoreRoute) return [
810
+ 2
811
+ ];
812
+ liff.login({
813
+ redirectUri: redirectUri
814
+ });
815
+ }
876
816
  tempFriendship = null;
877
817
  if (!lineToken) return [
878
818
  3,
879
- 18
819
+ 12
880
820
  ];
881
- _state.label = 12;
882
- case 12:
821
+ _state.label = 7;
822
+ case 7:
883
823
  _state.trys.push([
884
- 12,
885
- 15,
824
+ 7,
825
+ 9,
886
826
  ,
887
- 16
827
+ 10
888
828
  ]);
889
- if (!!liff.isLoggedIn()) return [
890
- 3,
891
- 14
892
- ];
893
829
  return [
894
830
  4,
895
831
  liff.getFriendship()
896
832
  ];
897
- case 13:
833
+ case 8:
898
834
  friendship = _state.sent();
899
835
  friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
900
836
  setFriendship(friendFlag);
901
837
  tempFriendship = friendFlag;
902
838
  console.log("isFriendship", friendFlag);
903
- _state.label = 14;
904
- case 14:
905
839
  return [
906
840
  3,
907
- 16
841
+ 10
908
842
  ];
909
- case 15:
843
+ case 9:
910
844
  error = _state.sent();
911
845
  console.error("Error in liff.getFriendship():", error);
912
846
  return [
913
847
  3,
914
- 16
848
+ 10
915
849
  ];
916
- case 16:
850
+ case 10:
917
851
  console.log("isValid", isValid);
918
852
  if (tempFriendship && isValid) return [
919
853
  2
@@ -922,23 +856,23 @@ var LiffProvider = function(param) {
922
856
  4,
923
857
  loginInit(lineToken)
924
858
  ];
925
- case 17:
859
+ case 11:
926
860
  _state.sent();
927
- _state.label = 18;
928
- case 18:
861
+ _state.label = 12;
862
+ case 12:
929
863
  return [
930
864
  3,
931
- 20
865
+ 14
932
866
  ];
933
- case 19:
867
+ case 13:
934
868
  err = _state.sent();
935
869
  setLiffError(err.toString());
936
870
  console.log("LIFF init failed.", err);
937
871
  return [
938
872
  3,
939
- 20
873
+ 14
940
874
  ];
941
- case 20:
875
+ case 14:
942
876
  return [
943
877
  2
944
878
  ];
@@ -1115,7 +1049,7 @@ var LiffProvider = function(param) {
1115
1049
  return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
1116
1050
  };
1117
1051
  var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
1118
- // 初始載入時從 localStorage 載入 userInfo
1052
+ // 初始載入時從 localStorage 載入
1119
1053
  React.useEffect(function() {
1120
1054
  loadUserInfoFromStorage();
1121
1055
  loadLiffUserInfoFromStorage();
@@ -461,7 +461,7 @@ var LiffProvider = function(param) {
461
461
  var _useState7 = _sliced_to_array(useState(null), 2), loginType = _useState7[0], setLoginType = _useState7[1];
462
462
  // userInfo 的 localStorage key
463
463
  var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
464
- // liff userInfo 的 localStorage key
464
+ // liff profile 的 localStorage key
465
465
  var liffUserInfoStorageKey = "".concat(localStorageKey, "-liffUserInfo");
466
466
  // 從 localStorage 載入 userInfo
467
467
  var loadUserInfoFromStorage = function() {
@@ -485,7 +485,7 @@ var LiffProvider = function(param) {
485
485
  console.error("儲存 userInfo 失敗:", err);
486
486
  }
487
487
  };
488
- // 從 localStorage 載入 LIFF userInfo
488
+ // 從 localStorage 載入 LIFF profile
489
489
  var loadLiffUserInfoFromStorage = function() {
490
490
  try {
491
491
  var stored = window.localStorage.getItem(liffUserInfoStorageKey);
@@ -499,7 +499,7 @@ var LiffProvider = function(param) {
499
499
  }
500
500
  return null;
501
501
  };
502
- // 儲存 LIFF userInfo 到 localStorage
502
+ // 儲存 LIFF profile 到 localStorage
503
503
  var saveLiffUserInfoToStorage = function(info) {
504
504
  try {
505
505
  window.localStorage.setItem(liffUserInfoStorageKey, JSON.stringify(info));
@@ -724,15 +724,15 @@ var LiffProvider = function(param) {
724
724
  // 初始化 LIFF
725
725
  var initializeLiff = function() {
726
726
  var _ref = _async_to_generator(function(isValid) {
727
- var customFetch, liff, redirectUri, originalFetch, profile, profileErr, e, msg, lineToken, tempFriendship, friendship, friendFlag, error, err;
727
+ var customFetch, liff, originalFetch, profile, profileErr, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
728
728
  return _ts_generator(this, function(_state) {
729
729
  switch(_state.label){
730
730
  case 0:
731
731
  _state.trys.push([
732
732
  0,
733
- 19,
733
+ 13,
734
734
  ,
735
- 20
735
+ 14
736
736
  ]);
737
737
  customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
738
738
  // eslint-disable-next-line no-inner-declarations
@@ -748,60 +748,9 @@ var LiffProvider = function(param) {
748
748
  ];
749
749
  case 1:
750
750
  liff = _state.sent().liff;
751
- // 未登入先進行登入
752
- if (!liff.isLoggedIn()) {
753
- redirectUri = customerRedirectUrl || "".concat(window.location.href);
754
- if (liffLogin) {
755
- liff.login({
756
- redirectUri: redirectUri
757
- });
758
- return [
759
- 2
760
- ];
761
- }
762
- if (loginByUser || ignoreRoute) return [
763
- 2
764
- ];
765
- liff.login({
766
- redirectUri: redirectUri
767
- });
768
- return [
769
- 2
770
- ];
771
- }
772
751
  originalFetch = window.fetch;
773
752
  window.fetch = customFetch;
774
753
  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);
775
- if (!!liff.isLoggedIn()) return [
776
- 3,
777
- 11
778
- ];
779
- if (!(!liffId || typeof liffId !== "string" || liffId.trim() === "")) return [
780
- 3,
781
- 2
782
- ];
783
- console.warn("liffId 未提供或為空字串,跳過 liff.init()。");
784
- return [
785
- 3,
786
- 11
787
- ];
788
- case 2:
789
- _state.trys.push([
790
- 2,
791
- 10,
792
- ,
793
- 11
794
- ]);
795
- if (!(typeof liff.init !== "function")) return [
796
- 3,
797
- 3
798
- ];
799
- console.warn("liff.init 尚未提供,跳過 init。");
800
- return [
801
- 3,
802
- 9
803
- ];
804
- case 3:
805
754
  return [
806
755
  4,
807
756
  liff.init({
@@ -809,107 +758,92 @@ var LiffProvider = function(param) {
809
758
  withLoginOnExternalBrowser: false
810
759
  })
811
760
  ];
812
- case 4:
761
+ case 2:
813
762
  _state.sent();
814
763
  console.log("LIFF init succeeded.");
815
764
  setLiffObject(liff);
816
- _state.label = 5;
817
- case 5:
765
+ _state.label = 3;
766
+ case 3:
818
767
  _state.trys.push([
768
+ 3,
819
769
  5,
820
- 7,
821
770
  ,
822
- 8
771
+ 6
823
772
  ]);
824
773
  return [
825
774
  4,
826
775
  liff.getProfile()
827
776
  ];
828
- case 6:
777
+ case 4:
829
778
  profile = _state.sent();
830
779
  setLiffProfile(profile);
831
780
  saveLiffUserInfoToStorage(profile);
832
781
  return [
833
782
  3,
834
- 8
783
+ 6
835
784
  ];
836
- case 7:
785
+ case 5:
837
786
  profileErr = _state.sent();
838
- // 取得 profile 失敗不致命,後續可由 caller 取得
839
- console.warn("取得 LIFF profile 失敗(非致命):", profileErr);
840
- return [
841
- 3,
842
- 8
843
- ];
844
- case 8:
845
- // 標記為已初始化(persist),避免 redirect 回來時重複 init
846
- try {
847
- window.localStorage.setItem("".concat(localStorageKey, "-liffInitialized"), "1");
848
- } catch (e) {
849
- // ignore
850
- }
851
- _state.label = 9;
852
- case 9:
853
- return [
854
- 3,
855
- 11
856
- ];
857
- case 10:
858
- e = _state.sent();
859
- // 如果是缺少 liffId 的 SDK 錯誤,安靜短路並不要把錯誤曝露給使用者
860
- msg = (e === null || e === void 0 ? void 0 : e.message) || String(e);
861
- if (typeof msg === "string" && msg.includes("liffId is necessary")) {
862
- console.warn("略過 liff.init 錯誤(缺少 liffId):", msg);
863
- } else {
864
- throw e;
865
- }
787
+ console.warn("取得 LIFF profile 失敗(非致命):", profileErr);
866
788
  return [
867
789
  3,
868
- 11
790
+ 6
869
791
  ];
870
- case 11:
792
+ case 6:
871
793
  lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
794
+ // 未登入先進行登入
795
+ if (!liff.isLoggedIn()) {
796
+ redirectUri = customerRedirectUrl || "".concat(window.location.href);
797
+ if (liffLogin) {
798
+ liff.login({
799
+ redirectUri: redirectUri
800
+ });
801
+ return [
802
+ 2
803
+ ];
804
+ }
805
+ if (loginByUser || ignoreRoute) return [
806
+ 2
807
+ ];
808
+ liff.login({
809
+ redirectUri: redirectUri
810
+ });
811
+ }
872
812
  tempFriendship = null;
873
813
  if (!lineToken) return [
874
814
  3,
875
- 18
815
+ 12
876
816
  ];
877
- _state.label = 12;
878
- case 12:
817
+ _state.label = 7;
818
+ case 7:
879
819
  _state.trys.push([
880
- 12,
881
- 15,
820
+ 7,
821
+ 9,
882
822
  ,
883
- 16
823
+ 10
884
824
  ]);
885
- if (!!liff.isLoggedIn()) return [
886
- 3,
887
- 14
888
- ];
889
825
  return [
890
826
  4,
891
827
  liff.getFriendship()
892
828
  ];
893
- case 13:
829
+ case 8:
894
830
  friendship = _state.sent();
895
831
  friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
896
832
  setFriendship(friendFlag);
897
833
  tempFriendship = friendFlag;
898
834
  console.log("isFriendship", friendFlag);
899
- _state.label = 14;
900
- case 14:
901
835
  return [
902
836
  3,
903
- 16
837
+ 10
904
838
  ];
905
- case 15:
839
+ case 9:
906
840
  error = _state.sent();
907
841
  console.error("Error in liff.getFriendship():", error);
908
842
  return [
909
843
  3,
910
- 16
844
+ 10
911
845
  ];
912
- case 16:
846
+ case 10:
913
847
  console.log("isValid", isValid);
914
848
  if (tempFriendship && isValid) return [
915
849
  2
@@ -918,23 +852,23 @@ var LiffProvider = function(param) {
918
852
  4,
919
853
  loginInit(lineToken)
920
854
  ];
921
- case 17:
855
+ case 11:
922
856
  _state.sent();
923
- _state.label = 18;
924
- case 18:
857
+ _state.label = 12;
858
+ case 12:
925
859
  return [
926
860
  3,
927
- 20
861
+ 14
928
862
  ];
929
- case 19:
863
+ case 13:
930
864
  err = _state.sent();
931
865
  setLiffError(err.toString());
932
866
  console.log("LIFF init failed.", err);
933
867
  return [
934
868
  3,
935
- 20
869
+ 14
936
870
  ];
937
- case 20:
871
+ case 14:
938
872
  return [
939
873
  2
940
874
  ];
@@ -1111,7 +1045,7 @@ var LiffProvider = function(param) {
1111
1045
  return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
1112
1046
  };
1113
1047
  var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
1114
- // 初始載入時從 localStorage 載入 userInfo
1048
+ // 初始載入時從 localStorage 載入
1115
1049
  useEffect(function() {
1116
1050
  loadUserInfoFromStorage();
1117
1051
  loadLiffUserInfoFromStorage();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunggang/ui-lib",
3
- "version": "0.4.50",
3
+ "version": "0.4.52",
4
4
  "sideEffects": [
5
5
  "*.css",
6
6
  "./src/style.css",
@@ -3,6 +3,7 @@ type LiffContextType = {
3
3
  liffObject: any;
4
4
  loginData: any;
5
5
  userInfo?: any;
6
+ liffProfile?: any;
6
7
  accessToken: string;
7
8
  liffError: string | null;
8
9
  initializeLiff: () => Promise<void>;