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.
@@ -4008,12 +4008,23 @@ var OpenXiangdaProvider = ({
4008
4008
  () => appType || resolveAppTypeFromLocation(),
4009
4009
  [appType]
4010
4010
  );
4011
+ const [accessToken, setAccessTokenState] = useState4(null);
4012
+ const setAccessToken = useCallback4(
4013
+ (nextAccessToken) => {
4014
+ setAccessTokenState(nextAccessToken || null);
4015
+ },
4016
+ []
4017
+ );
4018
+ const authorizedFetch = useMemo5(
4019
+ () => createAuthorizedFetch(resolvedFetch, accessToken),
4020
+ [accessToken, resolvedFetch]
4021
+ );
4011
4022
  const [state, setState] = useState4({
4012
4023
  data: null,
4013
4024
  loading: true,
4014
4025
  error: null
4015
4026
  });
4016
- const reload = useCallback4(async () => {
4027
+ const reload = useCallback4(async (options = {}) => {
4017
4028
  if (!resolvedAppType) {
4018
4029
  setState({
4019
4030
  data: null,
@@ -4026,8 +4037,9 @@ var OpenXiangdaProvider = ({
4026
4037
  return;
4027
4038
  }
4028
4039
  setState((prev) => ({ ...prev, loading: true, error: null }));
4040
+ const requestFetch = options.accessToken !== void 0 ? createAuthorizedFetch(resolvedFetch, options.accessToken || null) : authorizedFetch;
4029
4041
  try {
4030
- const response = await resolvedFetch(
4042
+ const response = await requestFetch(
4031
4043
  buildServiceUrl3(
4032
4044
  servicePrefix,
4033
4045
  `/openxiangda-api/v1/apps/${encodeURIComponent(
@@ -4059,7 +4071,7 @@ var OpenXiangdaProvider = ({
4059
4071
  error: normalizeRuntimeError(error)
4060
4072
  });
4061
4073
  }
4062
- }, [resolvedAppType, resolvedFetch, servicePrefix]);
4074
+ }, [authorizedFetch, resolvedAppType, resolvedFetch, servicePrefix]);
4063
4075
  useEffect4(() => {
4064
4076
  void reload();
4065
4077
  }, [reload]);
@@ -4068,10 +4080,11 @@ var OpenXiangdaProvider = ({
4068
4080
  ...state,
4069
4081
  appType: resolvedAppType,
4070
4082
  servicePrefix,
4071
- fetchImpl: resolvedFetch,
4072
- reload
4083
+ fetchImpl: authorizedFetch,
4084
+ reload,
4085
+ setAccessToken
4073
4086
  }),
4074
- [reload, resolvedAppType, resolvedFetch, servicePrefix, state]
4087
+ [authorizedFetch, reload, resolvedAppType, servicePrefix, state]
4075
4088
  );
4076
4089
  return /* @__PURE__ */ jsx4(OpenXiangdaRuntimeContext.Provider, { value, children });
4077
4090
  };
@@ -4338,6 +4351,19 @@ var buildServiceUrl3 = (servicePrefix, path) => {
4338
4351
  const suffix = path.startsWith("/") ? path : `/${path}`;
4339
4352
  return `${prefix2}${suffix}`;
4340
4353
  };
4354
+ var createAuthorizedFetch = (baseFetch, accessToken) => {
4355
+ if (!accessToken) return baseFetch;
4356
+ return ((input, init = {}) => {
4357
+ const headers = new Headers(init.headers || {});
4358
+ if (!headers.has("authorization")) {
4359
+ headers.set("authorization", `Bearer ${accessToken}`);
4360
+ }
4361
+ return baseFetch(input, {
4362
+ ...init,
4363
+ headers
4364
+ });
4365
+ });
4366
+ };
4341
4367
  var readJsonPayload = async (response) => {
4342
4368
  try {
4343
4369
  return await response.json();
@@ -4460,7 +4486,8 @@ var usePublicAccess = (options = {}) => {
4460
4486
  appType: runtimeAppType,
4461
4487
  servicePrefix: runtimeServicePrefix,
4462
4488
  fetchImpl: runtimeFetchImpl,
4463
- reload: reloadRuntime
4489
+ reload: reloadRuntime,
4490
+ setAccessToken
4464
4491
  } = runtime;
4465
4492
  const {
4466
4493
  appType = runtimeAppType,
@@ -4494,7 +4521,8 @@ var usePublicAccess = (options = {}) => {
4494
4521
  path: input.path || stableSessionInput.path || readPathFromLocation()
4495
4522
  });
4496
4523
  setSession(data);
4497
- await reloadRuntime();
4524
+ setAccessToken(data.accessToken);
4525
+ await reloadRuntime({ accessToken: data.accessToken });
4498
4526
  setLoading(false);
4499
4527
  return data;
4500
4528
  } catch (caught) {
@@ -4507,7 +4535,7 @@ var usePublicAccess = (options = {}) => {
4507
4535
  throw nextError;
4508
4536
  }
4509
4537
  },
4510
- [client, reloadRuntime, stableSessionInput]
4538
+ [client, reloadRuntime, setAccessToken, stableSessionInput]
4511
4539
  );
4512
4540
  useEffect5(() => {
4513
4541
  if (!autoStart) return;