@sunggang/ui-lib 0.4.48 → 0.4.50

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.
@@ -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, lineToken, tempFriendship, friendship, friendFlag, error, err;
731
+ var customFetch, liff, redirectUri, originalFetch, profile, profileErr, e, msg, lineToken, 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
- 12,
737
+ 19,
738
738
  ,
739
- 13
739
+ 20
740
740
  ]);
741
741
  customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
742
742
  // eslint-disable-next-line no-inner-declarations
@@ -778,8 +778,34 @@ var LiffProvider = function(param) {
778
778
  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
779
  if (!!liff.isLoggedIn()) return [
780
780
  3,
781
- 4
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
782
807
  ];
808
+ case 3:
783
809
  return [
784
810
  4,
785
811
  liff.init({
@@ -787,62 +813,107 @@ var LiffProvider = function(param) {
787
813
  withLoginOnExternalBrowser: false
788
814
  })
789
815
  ];
790
- case 2:
816
+ case 4:
791
817
  _state.sent();
792
818
  console.log("LIFF init succeeded.");
793
819
  setLiffObject(liff);
820
+ _state.label = 5;
821
+ case 5:
822
+ _state.trys.push([
823
+ 5,
824
+ 7,
825
+ ,
826
+ 8
827
+ ]);
794
828
  return [
795
829
  4,
796
830
  liff.getProfile()
797
831
  ];
798
- case 3:
832
+ case 6:
799
833
  profile = _state.sent();
800
834
  setLiffProfile(profile);
801
835
  saveLiffUserInfoToStorage(profile);
802
- _state.label = 4;
803
- case 4:
836
+ return [
837
+ 3,
838
+ 8
839
+ ];
840
+ case 7:
841
+ 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
+ }
870
+ return [
871
+ 3,
872
+ 11
873
+ ];
874
+ case 11:
804
875
  lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
805
876
  tempFriendship = null;
806
877
  if (!lineToken) return [
807
878
  3,
808
- 11
879
+ 18
809
880
  ];
810
- _state.label = 5;
811
- case 5:
881
+ _state.label = 12;
882
+ case 12:
812
883
  _state.trys.push([
813
- 5,
814
- 8,
884
+ 12,
885
+ 15,
815
886
  ,
816
- 9
887
+ 16
817
888
  ]);
818
889
  if (!!liff.isLoggedIn()) return [
819
890
  3,
820
- 7
891
+ 14
821
892
  ];
822
893
  return [
823
894
  4,
824
895
  liff.getFriendship()
825
896
  ];
826
- case 6:
897
+ case 13:
827
898
  friendship = _state.sent();
828
899
  friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
829
900
  setFriendship(friendFlag);
830
901
  tempFriendship = friendFlag;
831
902
  console.log("isFriendship", friendFlag);
832
- _state.label = 7;
833
- case 7:
903
+ _state.label = 14;
904
+ case 14:
834
905
  return [
835
906
  3,
836
- 9
907
+ 16
837
908
  ];
838
- case 8:
909
+ case 15:
839
910
  error = _state.sent();
840
911
  console.error("Error in liff.getFriendship():", error);
841
912
  return [
842
913
  3,
843
- 9
914
+ 16
844
915
  ];
845
- case 9:
916
+ case 16:
846
917
  console.log("isValid", isValid);
847
918
  if (tempFriendship && isValid) return [
848
919
  2
@@ -851,23 +922,23 @@ var LiffProvider = function(param) {
851
922
  4,
852
923
  loginInit(lineToken)
853
924
  ];
854
- case 10:
925
+ case 17:
855
926
  _state.sent();
856
- _state.label = 11;
857
- case 11:
927
+ _state.label = 18;
928
+ case 18:
858
929
  return [
859
930
  3,
860
- 13
931
+ 20
861
932
  ];
862
- case 12:
933
+ case 19:
863
934
  err = _state.sent();
864
935
  setLiffError(err.toString());
865
936
  console.log("LIFF init failed.", err);
866
937
  return [
867
938
  3,
868
- 13
939
+ 20
869
940
  ];
870
- case 13:
941
+ case 20:
871
942
  return [
872
943
  2
873
944
  ];
@@ -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, lineToken, tempFriendship, friendship, friendFlag, error, err;
727
+ var customFetch, liff, redirectUri, originalFetch, profile, profileErr, e, msg, lineToken, 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
- 12,
733
+ 19,
734
734
  ,
735
- 13
735
+ 20
736
736
  ]);
737
737
  customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
738
738
  // eslint-disable-next-line no-inner-declarations
@@ -774,8 +774,34 @@ var LiffProvider = function(param) {
774
774
  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
775
  if (!!liff.isLoggedIn()) return [
776
776
  3,
777
- 4
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
778
803
  ];
804
+ case 3:
779
805
  return [
780
806
  4,
781
807
  liff.init({
@@ -783,62 +809,107 @@ var LiffProvider = function(param) {
783
809
  withLoginOnExternalBrowser: false
784
810
  })
785
811
  ];
786
- case 2:
812
+ case 4:
787
813
  _state.sent();
788
814
  console.log("LIFF init succeeded.");
789
815
  setLiffObject(liff);
816
+ _state.label = 5;
817
+ case 5:
818
+ _state.trys.push([
819
+ 5,
820
+ 7,
821
+ ,
822
+ 8
823
+ ]);
790
824
  return [
791
825
  4,
792
826
  liff.getProfile()
793
827
  ];
794
- case 3:
828
+ case 6:
795
829
  profile = _state.sent();
796
830
  setLiffProfile(profile);
797
831
  saveLiffUserInfoToStorage(profile);
798
- _state.label = 4;
799
- case 4:
832
+ return [
833
+ 3,
834
+ 8
835
+ ];
836
+ case 7:
837
+ 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
+ }
866
+ return [
867
+ 3,
868
+ 11
869
+ ];
870
+ case 11:
800
871
  lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
801
872
  tempFriendship = null;
802
873
  if (!lineToken) return [
803
874
  3,
804
- 11
875
+ 18
805
876
  ];
806
- _state.label = 5;
807
- case 5:
877
+ _state.label = 12;
878
+ case 12:
808
879
  _state.trys.push([
809
- 5,
810
- 8,
880
+ 12,
881
+ 15,
811
882
  ,
812
- 9
883
+ 16
813
884
  ]);
814
885
  if (!!liff.isLoggedIn()) return [
815
886
  3,
816
- 7
887
+ 14
817
888
  ];
818
889
  return [
819
890
  4,
820
891
  liff.getFriendship()
821
892
  ];
822
- case 6:
893
+ case 13:
823
894
  friendship = _state.sent();
824
895
  friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
825
896
  setFriendship(friendFlag);
826
897
  tempFriendship = friendFlag;
827
898
  console.log("isFriendship", friendFlag);
828
- _state.label = 7;
829
- case 7:
899
+ _state.label = 14;
900
+ case 14:
830
901
  return [
831
902
  3,
832
- 9
903
+ 16
833
904
  ];
834
- case 8:
905
+ case 15:
835
906
  error = _state.sent();
836
907
  console.error("Error in liff.getFriendship():", error);
837
908
  return [
838
909
  3,
839
- 9
910
+ 16
840
911
  ];
841
- case 9:
912
+ case 16:
842
913
  console.log("isValid", isValid);
843
914
  if (tempFriendship && isValid) return [
844
915
  2
@@ -847,23 +918,23 @@ var LiffProvider = function(param) {
847
918
  4,
848
919
  loginInit(lineToken)
849
920
  ];
850
- case 10:
921
+ case 17:
851
922
  _state.sent();
852
- _state.label = 11;
853
- case 11:
923
+ _state.label = 18;
924
+ case 18:
854
925
  return [
855
926
  3,
856
- 13
927
+ 20
857
928
  ];
858
- case 12:
929
+ case 19:
859
930
  err = _state.sent();
860
931
  setLiffError(err.toString());
861
932
  console.log("LIFF init failed.", err);
862
933
  return [
863
934
  3,
864
- 13
935
+ 20
865
936
  ];
866
- case 13:
937
+ case 20:
867
938
  return [
868
939
  2
869
940
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunggang/ui-lib",
3
- "version": "0.4.48",
3
+ "version": "0.4.50",
4
4
  "sideEffects": [
5
5
  "*.css",
6
6
  "./src/style.css",