openxiangda 1.0.87 → 1.0.88

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.
@@ -3149,12 +3149,23 @@ var OpenXiangdaProvider = ({
3149
3149
  () => appType || resolveAppTypeFromLocation(),
3150
3150
  [appType]
3151
3151
  );
3152
+ const [accessToken, setAccessTokenState] = (0, import_react8.useState)(null);
3153
+ const setAccessToken = (0, import_react8.useCallback)(
3154
+ (nextAccessToken) => {
3155
+ setAccessTokenState(nextAccessToken || null);
3156
+ },
3157
+ []
3158
+ );
3159
+ const authorizedFetch = (0, import_react8.useMemo)(
3160
+ () => createAuthorizedFetch(resolvedFetch, accessToken),
3161
+ [accessToken, resolvedFetch]
3162
+ );
3152
3163
  const [state, setState] = (0, import_react8.useState)({
3153
3164
  data: null,
3154
3165
  loading: true,
3155
3166
  error: null
3156
3167
  });
3157
- const reload = (0, import_react8.useCallback)(async () => {
3168
+ const reload = (0, import_react8.useCallback)(async (options = {}) => {
3158
3169
  if (!resolvedAppType) {
3159
3170
  setState({
3160
3171
  data: null,
@@ -3167,8 +3178,9 @@ var OpenXiangdaProvider = ({
3167
3178
  return;
3168
3179
  }
3169
3180
  setState((prev) => ({ ...prev, loading: true, error: null }));
3181
+ const requestFetch = options.accessToken !== void 0 ? createAuthorizedFetch(resolvedFetch, options.accessToken || null) : authorizedFetch;
3170
3182
  try {
3171
- const response = await resolvedFetch(
3183
+ const response = await requestFetch(
3172
3184
  buildServiceUrl2(
3173
3185
  servicePrefix,
3174
3186
  `/openxiangda-api/v1/apps/${encodeURIComponent(
@@ -3200,7 +3212,7 @@ var OpenXiangdaProvider = ({
3200
3212
  error: normalizeRuntimeError(error)
3201
3213
  });
3202
3214
  }
3203
- }, [resolvedAppType, resolvedFetch, servicePrefix]);
3215
+ }, [authorizedFetch, resolvedAppType, resolvedFetch, servicePrefix]);
3204
3216
  (0, import_react8.useEffect)(() => {
3205
3217
  void reload();
3206
3218
  }, [reload]);
@@ -3209,10 +3221,11 @@ var OpenXiangdaProvider = ({
3209
3221
  ...state,
3210
3222
  appType: resolvedAppType,
3211
3223
  servicePrefix,
3212
- fetchImpl: resolvedFetch,
3213
- reload
3224
+ fetchImpl: authorizedFetch,
3225
+ reload,
3226
+ setAccessToken
3214
3227
  }),
3215
- [reload, resolvedAppType, resolvedFetch, servicePrefix, state]
3228
+ [authorizedFetch, reload, resolvedAppType, servicePrefix, state]
3216
3229
  );
3217
3230
  return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(OpenXiangdaRuntimeContext.Provider, { value, children });
3218
3231
  };
@@ -3479,6 +3492,19 @@ var buildServiceUrl2 = (servicePrefix, path) => {
3479
3492
  const suffix = path.startsWith("/") ? path : `/${path}`;
3480
3493
  return `${prefix}${suffix}`;
3481
3494
  };
3495
+ var createAuthorizedFetch = (baseFetch, accessToken) => {
3496
+ if (!accessToken) return baseFetch;
3497
+ return ((input, init = {}) => {
3498
+ const headers = new Headers(init.headers || {});
3499
+ if (!headers.has("authorization")) {
3500
+ headers.set("authorization", `Bearer ${accessToken}`);
3501
+ }
3502
+ return baseFetch(input, {
3503
+ ...init,
3504
+ headers
3505
+ });
3506
+ });
3507
+ };
3482
3508
  var readJsonPayload = async (response) => {
3483
3509
  try {
3484
3510
  return await response.json();
@@ -3710,7 +3736,8 @@ var usePublicAccess = (options = {}) => {
3710
3736
  appType: runtimeAppType,
3711
3737
  servicePrefix: runtimeServicePrefix,
3712
3738
  fetchImpl: runtimeFetchImpl,
3713
- reload: reloadRuntime
3739
+ reload: reloadRuntime,
3740
+ setAccessToken
3714
3741
  } = runtime;
3715
3742
  const {
3716
3743
  appType = runtimeAppType,
@@ -3744,7 +3771,8 @@ var usePublicAccess = (options = {}) => {
3744
3771
  path: input.path || stableSessionInput.path || readPathFromLocation()
3745
3772
  });
3746
3773
  setSession(data);
3747
- await reloadRuntime();
3774
+ setAccessToken(data.accessToken);
3775
+ await reloadRuntime({ accessToken: data.accessToken });
3748
3776
  setLoading(false);
3749
3777
  return data;
3750
3778
  } catch (caught) {
@@ -3757,7 +3785,7 @@ var usePublicAccess = (options = {}) => {
3757
3785
  throw nextError;
3758
3786
  }
3759
3787
  },
3760
- [client, reloadRuntime, stableSessionInput]
3788
+ [client, reloadRuntime, setAccessToken, stableSessionInput]
3761
3789
  );
3762
3790
  (0, import_react9.useEffect)(() => {
3763
3791
  if (!autoStart) return;