@sunggang/ui-lib 0.4.51 → 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.
- package/LiffProvider.cjs.js +82 -26
- package/LiffProvider.esm.js +82 -26
- package/package.json +1 -1
- package/src/lib/Provider/LiffProvider.d.ts +1 -0
package/LiffProvider.cjs.js
CHANGED
|
@@ -460,10 +460,13 @@ var LiffProvider = function(param) {
|
|
|
460
460
|
var _useState2 = _sliced_to_array(React.useState(null), 2), liffError = _useState2[0], setLiffError = _useState2[1];
|
|
461
461
|
var _useState3 = _sliced_to_array(React.useState(null), 2), loginData = _useState3[0], setLoginData = _useState3[1];
|
|
462
462
|
var _useState4 = _sliced_to_array(React.useState(null), 2), userInfo = _useState4[0], setUserInfo = _useState4[1];
|
|
463
|
-
var _useState5 = _sliced_to_array(React.useState(null), 2),
|
|
464
|
-
var _useState6 = _sliced_to_array(React.useState(null), 2),
|
|
463
|
+
var _useState5 = _sliced_to_array(React.useState(null), 2), liffProfile = _useState5[0], setLiffProfile = _useState5[1];
|
|
464
|
+
var _useState6 = _sliced_to_array(React.useState(null), 2), isFriendship = _useState6[0], setFriendship = _useState6[1];
|
|
465
|
+
var _useState7 = _sliced_to_array(React.useState(null), 2), loginType = _useState7[0], setLoginType = _useState7[1];
|
|
465
466
|
// userInfo 的 localStorage key
|
|
466
467
|
var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
|
|
468
|
+
// liff profile 的 localStorage key
|
|
469
|
+
var liffUserInfoStorageKey = "".concat(localStorageKey, "-liffUserInfo");
|
|
467
470
|
// 從 localStorage 載入 userInfo
|
|
468
471
|
var loadUserInfoFromStorage = function() {
|
|
469
472
|
try {
|
|
@@ -486,6 +489,28 @@ var LiffProvider = function(param) {
|
|
|
486
489
|
console.error("儲存 userInfo 失敗:", err);
|
|
487
490
|
}
|
|
488
491
|
};
|
|
492
|
+
// 從 localStorage 載入 LIFF profile
|
|
493
|
+
var loadLiffUserInfoFromStorage = function() {
|
|
494
|
+
try {
|
|
495
|
+
var stored = window.localStorage.getItem(liffUserInfoStorageKey);
|
|
496
|
+
if (stored) {
|
|
497
|
+
var parsed = JSON.parse(stored);
|
|
498
|
+
setLiffProfile(parsed);
|
|
499
|
+
return parsed;
|
|
500
|
+
}
|
|
501
|
+
} catch (err) {
|
|
502
|
+
console.error("載入 liffUserInfo 失敗:", err);
|
|
503
|
+
}
|
|
504
|
+
return null;
|
|
505
|
+
};
|
|
506
|
+
// 儲存 LIFF profile 到 localStorage
|
|
507
|
+
var saveLiffUserInfoToStorage = function(info) {
|
|
508
|
+
try {
|
|
509
|
+
window.localStorage.setItem(liffUserInfoStorageKey, JSON.stringify(info));
|
|
510
|
+
} catch (err) {
|
|
511
|
+
console.error("儲存 liffUserInfo 失敗:", err);
|
|
512
|
+
}
|
|
513
|
+
};
|
|
489
514
|
var fetchMemberInfo = function() {
|
|
490
515
|
var _ref = _async_to_generator(function(token) {
|
|
491
516
|
var response, err;
|
|
@@ -703,15 +728,15 @@ var LiffProvider = function(param) {
|
|
|
703
728
|
// 初始化 LIFF
|
|
704
729
|
var initializeLiff = function() {
|
|
705
730
|
var _ref = _async_to_generator(function(isValid) {
|
|
706
|
-
var customFetch, liff, originalFetch, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
|
|
731
|
+
var customFetch, liff, originalFetch, profile, profileErr, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
|
|
707
732
|
return _ts_generator(this, function(_state) {
|
|
708
733
|
switch(_state.label){
|
|
709
734
|
case 0:
|
|
710
735
|
_state.trys.push([
|
|
711
736
|
0,
|
|
712
|
-
|
|
737
|
+
13,
|
|
713
738
|
,
|
|
714
|
-
|
|
739
|
+
14
|
|
715
740
|
]);
|
|
716
741
|
customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
|
|
717
742
|
// eslint-disable-next-line no-inner-declarations
|
|
@@ -741,6 +766,34 @@ var LiffProvider = function(param) {
|
|
|
741
766
|
_state.sent();
|
|
742
767
|
console.log("LIFF init succeeded.");
|
|
743
768
|
setLiffObject(liff);
|
|
769
|
+
_state.label = 3;
|
|
770
|
+
case 3:
|
|
771
|
+
_state.trys.push([
|
|
772
|
+
3,
|
|
773
|
+
5,
|
|
774
|
+
,
|
|
775
|
+
6
|
|
776
|
+
]);
|
|
777
|
+
return [
|
|
778
|
+
4,
|
|
779
|
+
liff.getProfile()
|
|
780
|
+
];
|
|
781
|
+
case 4:
|
|
782
|
+
profile = _state.sent();
|
|
783
|
+
setLiffProfile(profile);
|
|
784
|
+
saveLiffUserInfoToStorage(profile);
|
|
785
|
+
return [
|
|
786
|
+
3,
|
|
787
|
+
6
|
|
788
|
+
];
|
|
789
|
+
case 5:
|
|
790
|
+
profileErr = _state.sent();
|
|
791
|
+
console.warn("取得 LIFF profile 失敗(非致命):", profileErr);
|
|
792
|
+
return [
|
|
793
|
+
3,
|
|
794
|
+
6
|
|
795
|
+
];
|
|
796
|
+
case 6:
|
|
744
797
|
lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
|
|
745
798
|
// 未登入先進行登入
|
|
746
799
|
if (!liff.isLoggedIn()) {
|
|
@@ -763,21 +816,21 @@ var LiffProvider = function(param) {
|
|
|
763
816
|
tempFriendship = null;
|
|
764
817
|
if (!lineToken) return [
|
|
765
818
|
3,
|
|
766
|
-
|
|
819
|
+
12
|
|
767
820
|
];
|
|
768
|
-
_state.label =
|
|
769
|
-
case
|
|
821
|
+
_state.label = 7;
|
|
822
|
+
case 7:
|
|
770
823
|
_state.trys.push([
|
|
771
|
-
|
|
772
|
-
|
|
824
|
+
7,
|
|
825
|
+
9,
|
|
773
826
|
,
|
|
774
|
-
|
|
827
|
+
10
|
|
775
828
|
]);
|
|
776
829
|
return [
|
|
777
830
|
4,
|
|
778
831
|
liff.getFriendship()
|
|
779
832
|
];
|
|
780
|
-
case
|
|
833
|
+
case 8:
|
|
781
834
|
friendship = _state.sent();
|
|
782
835
|
friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
|
|
783
836
|
setFriendship(friendFlag);
|
|
@@ -785,16 +838,16 @@ var LiffProvider = function(param) {
|
|
|
785
838
|
console.log("isFriendship", friendFlag);
|
|
786
839
|
return [
|
|
787
840
|
3,
|
|
788
|
-
|
|
841
|
+
10
|
|
789
842
|
];
|
|
790
|
-
case
|
|
843
|
+
case 9:
|
|
791
844
|
error = _state.sent();
|
|
792
845
|
console.error("Error in liff.getFriendship():", error);
|
|
793
846
|
return [
|
|
794
847
|
3,
|
|
795
|
-
|
|
848
|
+
10
|
|
796
849
|
];
|
|
797
|
-
case
|
|
850
|
+
case 10:
|
|
798
851
|
console.log("isValid", isValid);
|
|
799
852
|
if (tempFriendship && isValid) return [
|
|
800
853
|
2
|
|
@@ -803,23 +856,23 @@ var LiffProvider = function(param) {
|
|
|
803
856
|
4,
|
|
804
857
|
loginInit(lineToken)
|
|
805
858
|
];
|
|
806
|
-
case
|
|
859
|
+
case 11:
|
|
807
860
|
_state.sent();
|
|
808
|
-
_state.label =
|
|
809
|
-
case
|
|
861
|
+
_state.label = 12;
|
|
862
|
+
case 12:
|
|
810
863
|
return [
|
|
811
864
|
3,
|
|
812
|
-
|
|
865
|
+
14
|
|
813
866
|
];
|
|
814
|
-
case
|
|
867
|
+
case 13:
|
|
815
868
|
err = _state.sent();
|
|
816
869
|
setLiffError(err.toString());
|
|
817
870
|
console.log("LIFF init failed.", err);
|
|
818
871
|
return [
|
|
819
872
|
3,
|
|
820
|
-
|
|
873
|
+
14
|
|
821
874
|
];
|
|
822
|
-
case
|
|
875
|
+
case 14:
|
|
823
876
|
return [
|
|
824
877
|
2
|
|
825
878
|
];
|
|
@@ -996,9 +1049,10 @@ var LiffProvider = function(param) {
|
|
|
996
1049
|
return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
|
|
997
1050
|
};
|
|
998
1051
|
var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
|
|
999
|
-
// 初始載入時從 localStorage 載入
|
|
1052
|
+
// 初始載入時從 localStorage 載入
|
|
1000
1053
|
React.useEffect(function() {
|
|
1001
1054
|
loadUserInfoFromStorage();
|
|
1055
|
+
loadLiffUserInfoFromStorage();
|
|
1002
1056
|
}, []);
|
|
1003
1057
|
// 客戶端初始化 LIFF
|
|
1004
1058
|
React.useEffect(function() {
|
|
@@ -1089,7 +1143,8 @@ var LiffProvider = function(param) {
|
|
|
1089
1143
|
isFriendship: isFriendship,
|
|
1090
1144
|
ensureLiffTokenValid: ensureLiffTokenValid,
|
|
1091
1145
|
accountLogin: accountLogin,
|
|
1092
|
-
loginType: loginType
|
|
1146
|
+
loginType: loginType,
|
|
1147
|
+
liffProfile: liffProfile
|
|
1093
1148
|
};
|
|
1094
1149
|
}, [
|
|
1095
1150
|
liffObject,
|
|
@@ -1100,7 +1155,8 @@ var LiffProvider = function(param) {
|
|
|
1100
1155
|
isFriendship,
|
|
1101
1156
|
ensureLiffTokenValid,
|
|
1102
1157
|
accountLogin,
|
|
1103
|
-
loginType
|
|
1158
|
+
loginType,
|
|
1159
|
+
liffProfile
|
|
1104
1160
|
]);
|
|
1105
1161
|
return /*#__PURE__*/ jsxRuntime.jsx(LiffContext.Provider, {
|
|
1106
1162
|
value: contextValue,
|
package/LiffProvider.esm.js
CHANGED
|
@@ -456,10 +456,13 @@ var LiffProvider = function(param) {
|
|
|
456
456
|
var _useState2 = _sliced_to_array(useState(null), 2), liffError = _useState2[0], setLiffError = _useState2[1];
|
|
457
457
|
var _useState3 = _sliced_to_array(useState(null), 2), loginData = _useState3[0], setLoginData = _useState3[1];
|
|
458
458
|
var _useState4 = _sliced_to_array(useState(null), 2), userInfo = _useState4[0], setUserInfo = _useState4[1];
|
|
459
|
-
var _useState5 = _sliced_to_array(useState(null), 2),
|
|
460
|
-
var _useState6 = _sliced_to_array(useState(null), 2),
|
|
459
|
+
var _useState5 = _sliced_to_array(useState(null), 2), liffProfile = _useState5[0], setLiffProfile = _useState5[1];
|
|
460
|
+
var _useState6 = _sliced_to_array(useState(null), 2), isFriendship = _useState6[0], setFriendship = _useState6[1];
|
|
461
|
+
var _useState7 = _sliced_to_array(useState(null), 2), loginType = _useState7[0], setLoginType = _useState7[1];
|
|
461
462
|
// userInfo 的 localStorage key
|
|
462
463
|
var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
|
|
464
|
+
// liff profile 的 localStorage key
|
|
465
|
+
var liffUserInfoStorageKey = "".concat(localStorageKey, "-liffUserInfo");
|
|
463
466
|
// 從 localStorage 載入 userInfo
|
|
464
467
|
var loadUserInfoFromStorage = function() {
|
|
465
468
|
try {
|
|
@@ -482,6 +485,28 @@ var LiffProvider = function(param) {
|
|
|
482
485
|
console.error("儲存 userInfo 失敗:", err);
|
|
483
486
|
}
|
|
484
487
|
};
|
|
488
|
+
// 從 localStorage 載入 LIFF profile
|
|
489
|
+
var loadLiffUserInfoFromStorage = function() {
|
|
490
|
+
try {
|
|
491
|
+
var stored = window.localStorage.getItem(liffUserInfoStorageKey);
|
|
492
|
+
if (stored) {
|
|
493
|
+
var parsed = JSON.parse(stored);
|
|
494
|
+
setLiffProfile(parsed);
|
|
495
|
+
return parsed;
|
|
496
|
+
}
|
|
497
|
+
} catch (err) {
|
|
498
|
+
console.error("載入 liffUserInfo 失敗:", err);
|
|
499
|
+
}
|
|
500
|
+
return null;
|
|
501
|
+
};
|
|
502
|
+
// 儲存 LIFF profile 到 localStorage
|
|
503
|
+
var saveLiffUserInfoToStorage = function(info) {
|
|
504
|
+
try {
|
|
505
|
+
window.localStorage.setItem(liffUserInfoStorageKey, JSON.stringify(info));
|
|
506
|
+
} catch (err) {
|
|
507
|
+
console.error("儲存 liffUserInfo 失敗:", err);
|
|
508
|
+
}
|
|
509
|
+
};
|
|
485
510
|
var fetchMemberInfo = function() {
|
|
486
511
|
var _ref = _async_to_generator(function(token) {
|
|
487
512
|
var response, err;
|
|
@@ -699,15 +724,15 @@ var LiffProvider = function(param) {
|
|
|
699
724
|
// 初始化 LIFF
|
|
700
725
|
var initializeLiff = function() {
|
|
701
726
|
var _ref = _async_to_generator(function(isValid) {
|
|
702
|
-
var customFetch, liff, originalFetch, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
|
|
727
|
+
var customFetch, liff, originalFetch, profile, profileErr, lineToken, redirectUri, tempFriendship, friendship, friendFlag, error, err;
|
|
703
728
|
return _ts_generator(this, function(_state) {
|
|
704
729
|
switch(_state.label){
|
|
705
730
|
case 0:
|
|
706
731
|
_state.trys.push([
|
|
707
732
|
0,
|
|
708
|
-
|
|
733
|
+
13,
|
|
709
734
|
,
|
|
710
|
-
|
|
735
|
+
14
|
|
711
736
|
]);
|
|
712
737
|
customFetch = // 自訂 fetch 函數,避免每次請求都改變 URL
|
|
713
738
|
// eslint-disable-next-line no-inner-declarations
|
|
@@ -737,6 +762,34 @@ var LiffProvider = function(param) {
|
|
|
737
762
|
_state.sent();
|
|
738
763
|
console.log("LIFF init succeeded.");
|
|
739
764
|
setLiffObject(liff);
|
|
765
|
+
_state.label = 3;
|
|
766
|
+
case 3:
|
|
767
|
+
_state.trys.push([
|
|
768
|
+
3,
|
|
769
|
+
5,
|
|
770
|
+
,
|
|
771
|
+
6
|
|
772
|
+
]);
|
|
773
|
+
return [
|
|
774
|
+
4,
|
|
775
|
+
liff.getProfile()
|
|
776
|
+
];
|
|
777
|
+
case 4:
|
|
778
|
+
profile = _state.sent();
|
|
779
|
+
setLiffProfile(profile);
|
|
780
|
+
saveLiffUserInfoToStorage(profile);
|
|
781
|
+
return [
|
|
782
|
+
3,
|
|
783
|
+
6
|
|
784
|
+
];
|
|
785
|
+
case 5:
|
|
786
|
+
profileErr = _state.sent();
|
|
787
|
+
console.warn("取得 LIFF profile 失敗(非致命):", profileErr);
|
|
788
|
+
return [
|
|
789
|
+
3,
|
|
790
|
+
6
|
|
791
|
+
];
|
|
792
|
+
case 6:
|
|
740
793
|
lineToken = liff === null || liff === void 0 ? void 0 : liff.getAccessToken();
|
|
741
794
|
// 未登入先進行登入
|
|
742
795
|
if (!liff.isLoggedIn()) {
|
|
@@ -759,21 +812,21 @@ var LiffProvider = function(param) {
|
|
|
759
812
|
tempFriendship = null;
|
|
760
813
|
if (!lineToken) return [
|
|
761
814
|
3,
|
|
762
|
-
|
|
815
|
+
12
|
|
763
816
|
];
|
|
764
|
-
_state.label =
|
|
765
|
-
case
|
|
817
|
+
_state.label = 7;
|
|
818
|
+
case 7:
|
|
766
819
|
_state.trys.push([
|
|
767
|
-
|
|
768
|
-
|
|
820
|
+
7,
|
|
821
|
+
9,
|
|
769
822
|
,
|
|
770
|
-
|
|
823
|
+
10
|
|
771
824
|
]);
|
|
772
825
|
return [
|
|
773
826
|
4,
|
|
774
827
|
liff.getFriendship()
|
|
775
828
|
];
|
|
776
|
-
case
|
|
829
|
+
case 8:
|
|
777
830
|
friendship = _state.sent();
|
|
778
831
|
friendFlag = friendship === null || friendship === void 0 ? void 0 : friendship.friendFlag;
|
|
779
832
|
setFriendship(friendFlag);
|
|
@@ -781,16 +834,16 @@ var LiffProvider = function(param) {
|
|
|
781
834
|
console.log("isFriendship", friendFlag);
|
|
782
835
|
return [
|
|
783
836
|
3,
|
|
784
|
-
|
|
837
|
+
10
|
|
785
838
|
];
|
|
786
|
-
case
|
|
839
|
+
case 9:
|
|
787
840
|
error = _state.sent();
|
|
788
841
|
console.error("Error in liff.getFriendship():", error);
|
|
789
842
|
return [
|
|
790
843
|
3,
|
|
791
|
-
|
|
844
|
+
10
|
|
792
845
|
];
|
|
793
|
-
case
|
|
846
|
+
case 10:
|
|
794
847
|
console.log("isValid", isValid);
|
|
795
848
|
if (tempFriendship && isValid) return [
|
|
796
849
|
2
|
|
@@ -799,23 +852,23 @@ var LiffProvider = function(param) {
|
|
|
799
852
|
4,
|
|
800
853
|
loginInit(lineToken)
|
|
801
854
|
];
|
|
802
|
-
case
|
|
855
|
+
case 11:
|
|
803
856
|
_state.sent();
|
|
804
|
-
_state.label =
|
|
805
|
-
case
|
|
857
|
+
_state.label = 12;
|
|
858
|
+
case 12:
|
|
806
859
|
return [
|
|
807
860
|
3,
|
|
808
|
-
|
|
861
|
+
14
|
|
809
862
|
];
|
|
810
|
-
case
|
|
863
|
+
case 13:
|
|
811
864
|
err = _state.sent();
|
|
812
865
|
setLiffError(err.toString());
|
|
813
866
|
console.log("LIFF init failed.", err);
|
|
814
867
|
return [
|
|
815
868
|
3,
|
|
816
|
-
|
|
869
|
+
14
|
|
817
870
|
];
|
|
818
|
-
case
|
|
871
|
+
case 14:
|
|
819
872
|
return [
|
|
820
873
|
2
|
|
821
874
|
];
|
|
@@ -992,9 +1045,10 @@ var LiffProvider = function(param) {
|
|
|
992
1045
|
return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
|
|
993
1046
|
};
|
|
994
1047
|
var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
|
|
995
|
-
// 初始載入時從 localStorage 載入
|
|
1048
|
+
// 初始載入時從 localStorage 載入
|
|
996
1049
|
useEffect(function() {
|
|
997
1050
|
loadUserInfoFromStorage();
|
|
1051
|
+
loadLiffUserInfoFromStorage();
|
|
998
1052
|
}, []);
|
|
999
1053
|
// 客戶端初始化 LIFF
|
|
1000
1054
|
useEffect(function() {
|
|
@@ -1085,7 +1139,8 @@ var LiffProvider = function(param) {
|
|
|
1085
1139
|
isFriendship: isFriendship,
|
|
1086
1140
|
ensureLiffTokenValid: ensureLiffTokenValid,
|
|
1087
1141
|
accountLogin: accountLogin,
|
|
1088
|
-
loginType: loginType
|
|
1142
|
+
loginType: loginType,
|
|
1143
|
+
liffProfile: liffProfile
|
|
1089
1144
|
};
|
|
1090
1145
|
}, [
|
|
1091
1146
|
liffObject,
|
|
@@ -1096,7 +1151,8 @@ var LiffProvider = function(param) {
|
|
|
1096
1151
|
isFriendship,
|
|
1097
1152
|
ensureLiffTokenValid,
|
|
1098
1153
|
accountLogin,
|
|
1099
|
-
loginType
|
|
1154
|
+
loginType,
|
|
1155
|
+
liffProfile
|
|
1100
1156
|
]);
|
|
1101
1157
|
return /*#__PURE__*/ jsx(LiffContext.Provider, {
|
|
1102
1158
|
value: contextValue,
|
package/package.json
CHANGED