@sunggang/ui-lib 0.3.52 → 0.3.54

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.
Files changed (2) hide show
  1. package/index.esm2.js +103 -27
  2. package/package.json +1 -1
package/index.esm2.js CHANGED
@@ -78640,6 +78640,30 @@ var LiffProvider = function(param) {
78640
78640
  var _useState4 = _sliced_to_array(useState(null), 2), userInfo = _useState4[0], setUserInfo = _useState4[1];
78641
78641
  var _useState5 = _sliced_to_array(useState(null), 2), isFriendship = _useState5[0], setFriendship = _useState5[1];
78642
78642
  var _useState6 = _sliced_to_array(useState(null), 2), loginType = _useState6[0], setLoginType = _useState6[1];
78643
+ // userInfo 的 localStorage key
78644
+ var userInfoStorageKey = "".concat(localStorageKey, "-userInfo");
78645
+ // 從 localStorage 載入 userInfo
78646
+ var loadUserInfoFromStorage = function() {
78647
+ try {
78648
+ var storedUserInfo = window.localStorage.getItem(userInfoStorageKey);
78649
+ if (storedUserInfo) {
78650
+ var parsedUserInfo = JSON.parse(storedUserInfo);
78651
+ setUserInfo(parsedUserInfo);
78652
+ return parsedUserInfo;
78653
+ }
78654
+ } catch (err) {
78655
+ console.error("載入 userInfo 失敗:", err);
78656
+ }
78657
+ return null;
78658
+ };
78659
+ // 儲存 userInfo 到 localStorage
78660
+ var saveUserInfoToStorage = function(info) {
78661
+ try {
78662
+ window.localStorage.setItem(userInfoStorageKey, JSON.stringify(info));
78663
+ } catch (err) {
78664
+ console.error("儲存 userInfo 失敗:", err);
78665
+ }
78666
+ };
78643
78667
  var fetchMemberInfo = function() {
78644
78668
  var _ref = _async_to_generator(function(token) {
78645
78669
  var response, err;
@@ -78665,7 +78689,9 @@ var LiffProvider = function(param) {
78665
78689
  ];
78666
78690
  case 2:
78667
78691
  response = _state.sent();
78692
+ console.log("provider fetch member");
78668
78693
  setUserInfo(response);
78694
+ saveUserInfoToStorage(response);
78669
78695
  return [
78670
78696
  3,
78671
78697
  4
@@ -78695,6 +78721,7 @@ var LiffProvider = function(param) {
78695
78721
  return _ts_generator(this, function(_state) {
78696
78722
  switch(_state.label){
78697
78723
  case 0:
78724
+ console.log(checkTokenUrl, memberInfoUrl);
78698
78725
  if (!checkTokenUrl) return [
78699
78726
  2
78700
78727
  ];
@@ -78702,9 +78729,9 @@ var LiffProvider = function(param) {
78702
78729
  case 1:
78703
78730
  _state.trys.push([
78704
78731
  1,
78705
- 3,
78732
+ 6,
78706
78733
  ,
78707
- 4
78734
+ 7
78708
78735
  ]);
78709
78736
  return [
78710
78737
  4,
@@ -78714,26 +78741,43 @@ var LiffProvider = function(param) {
78714
78741
  ];
78715
78742
  case 2:
78716
78743
  response = _state.sent();
78717
- if ((response === null || response === void 0 ? void 0 : response.status) && (response === null || response === void 0 ? void 0 : response.data)) {
78718
- setAccessToken(token);
78719
- if (memberInfoUrl) fetchMemberInfo(token);
78720
- return [
78721
- 2,
78722
- true
78723
- ];
78724
- }
78725
- return [
78744
+ if (!((response === null || response === void 0 ? void 0 : response.status) && (response === null || response === void 0 ? void 0 : response.data))) return [
78745
+ 3,
78746
+ 5
78747
+ ];
78748
+ setAccessToken(token);
78749
+ if (!memberInfoUrl) return [
78726
78750
  3,
78727
78751
  4
78728
78752
  ];
78753
+ return [
78754
+ 4,
78755
+ fetchMemberInfo(token)
78756
+ ];
78729
78757
  case 3:
78758
+ _state.sent();
78759
+ _state.label = 4;
78760
+ case 4:
78761
+ return [
78762
+ 2,
78763
+ true
78764
+ ];
78765
+ case 5:
78766
+ return [
78767
+ 3,
78768
+ 7
78769
+ ];
78770
+ case 6:
78730
78771
  err = _state.sent();
78731
78772
  console.error(err);
78773
+ // token 無效時清除 userInfo
78774
+ setUserInfo(null);
78775
+ window.localStorage.removeItem(userInfoStorageKey);
78732
78776
  return [
78733
78777
  3,
78734
- 4
78778
+ 7
78735
78779
  ];
78736
- case 4:
78780
+ case 7:
78737
78781
  return [
78738
78782
  2,
78739
78783
  false
@@ -78759,9 +78803,9 @@ var LiffProvider = function(param) {
78759
78803
  case 1:
78760
78804
  _state.trys.push([
78761
78805
  1,
78762
- 3,
78806
+ 7,
78763
78807
  ,
78764
- 4
78808
+ 8
78765
78809
  ]);
78766
78810
  return [
78767
78811
  4,
@@ -78785,26 +78829,46 @@ var LiffProvider = function(param) {
78785
78829
  }
78786
78830
  window.localStorage.setItem(localStorageKey, JSON.stringify(resData));
78787
78831
  loginToken = resData === null || resData === void 0 ? void 0 : (_resData_data1 = resData.data) === null || _resData_data1 === void 0 ? void 0 : _resData_data1.access_token;
78788
- if (loginToken) {
78789
- setAccessToken(loginToken);
78790
- setLoginType("line");
78791
- if (memberInfoUrl) fetchMemberInfo(loginToken);
78792
- } else {
78793
- setUserInfo(response);
78794
- if (handleLoginError) handleLoginError();
78795
- }
78796
- return [
78832
+ if (!loginToken) return [
78833
+ 3,
78834
+ 5
78835
+ ];
78836
+ setAccessToken(loginToken);
78837
+ setLoginType("line");
78838
+ if (!memberInfoUrl) return [
78797
78839
  3,
78798
78840
  4
78799
78841
  ];
78842
+ return [
78843
+ 4,
78844
+ fetchMemberInfo(loginToken)
78845
+ ];
78800
78846
  case 3:
78847
+ _state.sent();
78848
+ _state.label = 4;
78849
+ case 4:
78850
+ return [
78851
+ 3,
78852
+ 6
78853
+ ];
78854
+ case 5:
78855
+ setUserInfo(response);
78856
+ saveUserInfoToStorage(response);
78857
+ if (handleLoginError) handleLoginError();
78858
+ _state.label = 6;
78859
+ case 6:
78860
+ return [
78861
+ 3,
78862
+ 8
78863
+ ];
78864
+ case 7:
78801
78865
  err = _state.sent();
78802
78866
  console.error(err.toString());
78803
78867
  return [
78804
78868
  3,
78805
- 4
78869
+ 8
78806
78870
  ];
78807
- case 4:
78871
+ case 8:
78808
78872
  return [
78809
78873
  2
78810
78874
  ];
@@ -79072,6 +79136,9 @@ var LiffProvider = function(param) {
79072
79136
  if (!isValid) {
79073
79137
  console.warn("JWT token 驗證失敗");
79074
79138
  setLoginType(null);
79139
+ // 清除 userInfo
79140
+ setUserInfo(null);
79141
+ window.localStorage.removeItem(userInfoStorageKey);
79075
79142
  return [
79076
79143
  2,
79077
79144
  false
@@ -79086,6 +79153,8 @@ var LiffProvider = function(param) {
79086
79153
  err = _state.sent();
79087
79154
  // token 失效或其他問題
79088
79155
  setLoginType(null);
79156
+ setUserInfo(null);
79157
+ window.localStorage.removeItem(userInfoStorageKey);
79089
79158
  console.warn("LIFF token 驗證失敗,需重新登入", err);
79090
79159
  return [
79091
79160
  2,
@@ -79098,13 +79167,18 @@ var LiffProvider = function(param) {
79098
79167
  }
79099
79168
  });
79100
79169
  }), [
79101
- liffObject
79170
+ liffObject,
79171
+ userInfoStorageKey
79102
79172
  ]);
79103
79173
  var normalizeToken = function(token) {
79104
79174
  var trimmed = token.trim();
79105
79175
  return trimmed.toLowerCase().startsWith("bearer ") ? trimmed : "Bearer ".concat(trimmed);
79106
79176
  };
79107
79177
  var searchParams = typeof window !== "undefined" ? new URLSearchParams(window.location.search) : null;
79178
+ // 初始載入時從 localStorage 載入 userInfo
79179
+ useEffect(function() {
79180
+ loadUserInfoFromStorage();
79181
+ }, []);
79108
79182
  // 客戶端初始化 LIFF
79109
79183
  useEffect(function() {
79110
79184
  var checkAndInitialize = function() {
@@ -79144,6 +79218,8 @@ var LiffProvider = function(param) {
79144
79218
  console.error("LocalStorage 解析失敗:", err);
79145
79219
  }
79146
79220
  }
79221
+ console.log("checkTokenUrl", checkTokenUrl);
79222
+ console.log("memberInfoUrl", memberInfoUrl);
79147
79223
  if (!jwtToken) return [
79148
79224
  3,
79149
79225
  4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sunggang/ui-lib",
3
- "version": "0.3.52",
3
+ "version": "0.3.54",
4
4
  "dependencies": {
5
5
  "@emotion/react": "^11.14.0",
6
6
  "@emotion/styled": "^11.14.0",