@youversion/platform-react-hooks 0.4.3 → 0.4.4

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @youversion/platform-react-hooks@0.4.3 build /home/runner/work/platform-sdk-react/platform-sdk-react/packages/hooks
2
+ > @youversion/platform-react-hooks@0.4.4 build /home/runner/work/platform-sdk-react/platform-sdk-react/packages/hooks
3
3
  > tsc -p tsconfig.build.json
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @youversion/platform-react-hooks
2
2
 
3
+ ## 0.4.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 8dee8f6: chore: allow setting apiHost from React code
8
+ - Updated dependencies [8dee8f6]
9
+ - @youversion/platform-core@0.4.4
10
+
3
11
  ## 0.4.3
4
12
 
5
13
  ### Patch Changes
@@ -1,5 +1,7 @@
1
1
  type BibleSDKContextData = {
2
2
  appKey: string;
3
+ apiHost?: string;
4
+ installationId?: string;
3
5
  };
4
6
  export declare const BibleSDKContext: import("react").Context<BibleSDKContextData | null>;
5
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"BibleSDKContext.d.ts","sourceRoot":"","sources":["../../src/context/BibleSDKContext.tsx"],"names":[],"mappings":"AAIA,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,eAAe,qDAAkD,CAAC"}
1
+ {"version":3,"file":"BibleSDKContext.d.ts","sourceRoot":"","sources":["../../src/context/BibleSDKContext.tsx"],"names":[],"mappings":"AAIA,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,qDAAkD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"BibleSDKContext.js","sourceRoot":"","sources":["../../src/context/BibleSDKContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAMtC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"BibleSDKContext.js","sourceRoot":"","sources":["../../src/context/BibleSDKContext.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAQtC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAA6B,IAAI,CAAC,CAAC"}
@@ -2,7 +2,8 @@ import type { PropsWithChildren, ReactNode } from 'react';
2
2
  type BibleSDKProviderProps = {
3
3
  children: ReactNode;
4
4
  appKey: string;
5
+ apiHost?: string;
5
6
  };
6
- export declare function BibleSDKProvider({ appKey, children, }: PropsWithChildren<BibleSDKProviderProps>): React.ReactElement;
7
+ export declare function BibleSDKProvider({ appKey, apiHost, children, }: PropsWithChildren<BibleSDKProviderProps>): React.ReactElement;
7
8
  export {};
8
9
  //# sourceMappingURL=BibleSDKProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BibleSDKProvider.d.ts","sourceRoot":"","sources":["../../src/context/BibleSDKProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAG1D,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,GACT,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,YAAY,CAE/D"}
1
+ {"version":3,"file":"BibleSDKProvider.d.ts","sourceRoot":"","sources":["../../src/context/BibleSDKProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAK1D,KAAK,qBAAqB,GAAG;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAA8B,EAC9B,QAAQ,GACT,EAAE,iBAAiB,CAAC,qBAAqB,CAAC,GAAG,KAAK,CAAC,YAAY,CAiB/D"}
@@ -1,7 +1,18 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect } from 'react';
3
4
  import { BibleSDKContext } from './BibleSDKContext';
4
- export function BibleSDKProvider({ appKey, children, }) {
5
- return _jsx(BibleSDKContext.Provider, { value: { appKey }, children: children });
5
+ import { YouVersionPlatformConfiguration } from '@youversion/platform-core';
6
+ export function BibleSDKProvider({ appKey, apiHost = 'api.youversion.com', children, }) {
7
+ // Syncing appKey and apiHost to YouVersionPlatformConfiguration
8
+ // so that this can be in sync with any other code that uses
9
+ // the YouVersionPlatformConfiguration, of which a lot of our
10
+ // core package uses this configuration.
11
+ useEffect(() => {
12
+ YouVersionPlatformConfiguration.appKey = appKey;
13
+ YouVersionPlatformConfiguration.apiHost = apiHost;
14
+ }, [appKey, apiHost]);
15
+ // Installation ID gets set automatically by YouVersionPlatformConfiguration
16
+ return (_jsx(BibleSDKContext.Provider, { value: { appKey, apiHost, installationId: YouVersionPlatformConfiguration.installationId }, children: children }));
6
17
  }
7
18
  //# sourceMappingURL=BibleSDKProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BibleSDKProvider.js","sourceRoot":"","sources":["../../src/context/BibleSDKProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAOpD,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,QAAQ,GACiC;IACzC,OAAO,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,MAAM,EAAE,YAAG,QAAQ,GAA4B,CAAC;AAC5F,CAAC"}
1
+ {"version":3,"file":"BibleSDKProvider.js","sourceRoot":"","sources":["../../src/context/BibleSDKProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAQ5E,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAAO,GAAG,oBAAoB,EAC9B,QAAQ,GACiC;IACzC,gEAAgE;IAChE,4DAA4D;IAC5D,6DAA6D;IAC7D,wCAAwC;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,+BAA+B,CAAC,MAAM,GAAG,MAAM,CAAC;QAChD,+BAA+B,CAAC,OAAO,GAAG,OAAO,CAAC;IACpD,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtB,4EAA4E;IAC5E,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IACvB,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,+BAA+B,CAAC,cAAc,EAAE,YAEzF,QAAQ,GACgB,CAC5B,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBibleClient.d.ts","sourceRoot":"","sources":["../src/useBibleClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAA8C,MAAM,2BAA2B,CAAC;AAEpG,wBAAgB,cAAc,IAAI,WAAW,CAe5C"}
1
+ {"version":3,"file":"useBibleClient.d.ts","sourceRoot":"","sources":["../src/useBibleClient.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAa,MAAM,2BAA2B,CAAC;AAEnE,wBAAgB,cAAc,IAAI,WAAW,CAkB5C"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { useContext, useMemo } from 'react';
3
3
  import { BibleSDKContext } from './context';
4
- import { BibleClient, ApiClient, YouVersionPlatformConfiguration } from '@youversion/platform-core';
4
+ import { BibleClient, ApiClient } from '@youversion/platform-core';
5
5
  export function useBibleClient() {
6
6
  const context = useContext(BibleSDKContext);
7
7
  return useMemo(() => {
@@ -10,8 +10,9 @@ export function useBibleClient() {
10
10
  }
11
11
  return new BibleClient(new ApiClient({
12
12
  appKey: context.appKey,
13
- installationId: YouVersionPlatformConfiguration.installationId,
13
+ apiHost: context.apiHost,
14
+ installationId: context.installationId,
14
15
  }));
15
- }, [context?.appKey]);
16
+ }, [context?.apiHost, context?.appKey, context?.installationId]);
16
17
  }
17
18
  //# sourceMappingURL=useBibleClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useBibleClient.js","sourceRoot":"","sources":["../src/useBibleClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,+BAA+B,EAAE,MAAM,2BAA2B,CAAC;AAEpG,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,WAAW,CACpB,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,+BAA+B,CAAC,cAAc;SAC/D,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"useBibleClient.js","sourceRoot":"","sources":["../src/useBibleClient.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,UAAU,cAAc;IAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5C,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,WAAW,CACpB,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AACnE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHighlights.d.ts","sourceRoot":"","sources":["../src/useHighlights.ts"],"names":[],"mappings":"AAUA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,oBAAoB,EAC9B,UAAU,CAAC,EAAE,iBAAiB,GAC7B;IACD,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F,CAkDA"}
1
+ {"version":3,"file":"useHighlights.d.ts","sourceRoot":"","sources":["../src/useHighlights.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,aAAa,CAC3B,OAAO,CAAC,EAAE,oBAAoB,EAC9B,UAAU,CAAC,EAAE,iBAAiB,GAC7B;IACD,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,eAAe,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/F,CAmDA"}
@@ -2,7 +2,7 @@
2
2
  import { useMemo, useCallback } from 'react';
3
3
  import { useContext } from 'react';
4
4
  import { BibleSDKContext } from './context';
5
- import { HighlightsClient, ApiClient, YouVersionPlatformConfiguration, } from '@youversion/platform-core';
5
+ import { HighlightsClient, ApiClient } from '@youversion/platform-core';
6
6
  import { useApiData } from './useApiData';
7
7
  import {} from '@youversion/platform-core';
8
8
  export function useHighlights(options, apiOptions) {
@@ -13,9 +13,10 @@ export function useHighlights(options, apiOptions) {
13
13
  }
14
14
  return new HighlightsClient(new ApiClient({
15
15
  appKey: context.appKey,
16
- installationId: YouVersionPlatformConfiguration.installationId,
16
+ apiHost: context.apiHost,
17
+ installationId: context.installationId,
17
18
  }));
18
- }, [context?.appKey]);
19
+ }, [context?.apiHost, context?.appKey, context?.installationId]);
19
20
  const { data, loading, error, refetch } = useApiData(() => highlightsClient.getHighlights(options), [highlightsClient, options?.version_id, options?.passage_id], {
20
21
  enabled: apiOptions?.enabled !== false,
21
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useHighlights.js","sourceRoot":"","sources":["../src/useHighlights.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,OAAO,EAMN,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,aAAa,CAC3B,OAA8B,EAC9B,UAA8B;IAS9B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,gBAAgB,CACzB,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,+BAA+B,CAAC,cAAc;SAC/D,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAClD,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,EAC7C,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,EAC5D;QACE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK;KACvC,CACF,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,IAAqB,EAAsB,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAC5B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,SAAiB,EAAE,aAAsC,EAAiB,EAAE;QACjF,MAAM,gBAAgB,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAC5B,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,OAAO;QACP,KAAK;QACL,OAAO;QACP,eAAe;QACf,eAAe;KAChB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useHighlights.js","sourceRoot":"","sources":["../src/useHighlights.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,OAAO,EAMN,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,aAAa,CAC3B,OAA8B,EAC9B,UAA8B;IAS9B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,gBAAgB,CACzB,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAClD,GAAG,EAAE,CAAC,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,EAC7C,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,CAAC,EAC5D;QACE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK;KACvC,CACF,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,IAAqB,EAAsB,EAAE;QAClD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAC5B,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,KAAK,EAAE,SAAiB,EAAE,aAAsC,EAAiB,EAAE;QACjF,MAAM,gBAAgB,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACjE,OAAO,EAAE,CAAC;IACZ,CAAC,EACD,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAC5B,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,OAAO;QACP,KAAK;QACL,OAAO;QACP,eAAe;QACf,eAAe;KAChB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLanguages.d.ts","sourceRoot":"","sources":["../src/useLanguages.ts"],"names":[],"mappings":"AAUA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,mBAAmB,EAC5B,UAAU,CAAC,EAAE,iBAAiB,GAC7B;IACD,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CA+BA"}
1
+ {"version":3,"file":"useLanguages.d.ts","sourceRoot":"","sources":["../src/useLanguages.ts"],"names":[],"mappings":"AAMA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,QAAQ,EACd,MAAM,2BAA2B,CAAC;AAEnC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,mBAAmB,EAC5B,UAAU,CAAC,EAAE,iBAAiB,GAC7B;IACD,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAgCA"}
@@ -2,7 +2,7 @@
2
2
  import { useMemo } from 'react';
3
3
  import { useContext } from 'react';
4
4
  import { BibleSDKContext } from './context';
5
- import { LanguagesClient, ApiClient, YouVersionPlatformConfiguration, } from '@youversion/platform-core';
5
+ import { LanguagesClient, ApiClient } from '@youversion/platform-core';
6
6
  import { useApiData } from './useApiData';
7
7
  import {} from '@youversion/platform-core';
8
8
  export function useLanguages(options, apiOptions) {
@@ -13,9 +13,10 @@ export function useLanguages(options, apiOptions) {
13
13
  }
14
14
  return new LanguagesClient(new ApiClient({
15
15
  appKey: context.appKey,
16
- installationId: YouVersionPlatformConfiguration.installationId,
16
+ apiHost: context.apiHost,
17
+ installationId: context.installationId,
17
18
  }));
18
- }, [context?.appKey]);
19
+ }, [context?.apiHost, context?.appKey, context?.installationId]);
19
20
  const { data, loading, error, refetch } = useApiData(() => languagesClient.getLanguages(options), [languagesClient, options?.country, options?.page_size, options?.page_token], {
20
21
  enabled: apiOptions?.enabled !== false,
21
22
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useLanguages.js","sourceRoot":"","sources":["../src/useLanguages.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACL,eAAe,EACf,SAAS,EACT,+BAA+B,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,OAAO,EAIN,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,YAAY,CAC1B,OAA4B,EAC5B,UAA8B;IAO9B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,eAAe,CACxB,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,cAAc,EAAE,+BAA+B,CAAC,cAAc;SAC/D,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAClD,GAAG,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,EAC3C,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,EAC5E;QACE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK;KACvC,CACF,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,IAAI;QACf,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useLanguages.js","sourceRoot":"","sources":["../src/useLanguages.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,UAAU,EAA0B,MAAM,cAAc,CAAC;AAClE,OAAO,EAIN,MAAM,2BAA2B,CAAC;AAEnC,MAAM,UAAU,YAAY,CAC1B,OAA4B,EAC5B,UAA8B;IAO9B,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAE5C,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE;QACnC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,eAAe,CACxB,IAAI,SAAS,CAAC;YACZ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,OAAO,CAAC,cAAc;SACvC,CAAC,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAEjE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,CAClD,GAAG,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,EAC3C,CAAC,eAAe,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,EAC5E;QACE,OAAO,EAAE,UAAU,EAAE,OAAO,KAAK,KAAK;KACvC,CACF,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,IAAI;QACf,OAAO;QACP,KAAK;QACL,OAAO;KACR,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@youversion/platform-react-hooks",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -21,7 +21,7 @@
21
21
  }
22
22
  },
23
23
  "dependencies": {
24
- "@youversion/platform-core": "0.4.3"
24
+ "@youversion/platform-core": "0.4.4"
25
25
  },
26
26
  "peerDependencies": {
27
27
  "react": ">=19.1.0 <20.0.0"
@@ -35,8 +35,8 @@
35
35
  "eslint": "9.38.0",
36
36
  "typescript": "5.9.3",
37
37
  "vitest": "4.0.4",
38
- "@internal/tsconfig": "0.0.0",
39
- "@internal/eslint-config": "0.0.0"
38
+ "@internal/eslint-config": "0.0.0",
39
+ "@internal/tsconfig": "0.0.0"
40
40
  },
41
41
  "scripts": {
42
42
  "dev": "tsc --watch",
@@ -4,6 +4,8 @@ import { createContext } from 'react';
4
4
 
5
5
  type BibleSDKContextData = {
6
6
  appKey: string;
7
+ apiHost?: string;
8
+ installationId?: string;
7
9
  };
8
10
 
9
11
  export const BibleSDKContext = createContext<BibleSDKContextData | null>(null);
@@ -1,16 +1,35 @@
1
1
  'use client';
2
2
 
3
3
  import type { PropsWithChildren, ReactNode } from 'react';
4
+ import { useEffect } from 'react';
4
5
  import { BibleSDKContext } from './BibleSDKContext';
6
+ import { YouVersionPlatformConfiguration } from '@youversion/platform-core';
5
7
 
6
8
  type BibleSDKProviderProps = {
7
9
  children: ReactNode;
8
10
  appKey: string;
11
+ apiHost?: string;
9
12
  };
10
13
 
11
14
  export function BibleSDKProvider({
12
15
  appKey,
16
+ apiHost = 'api.youversion.com',
13
17
  children,
14
18
  }: PropsWithChildren<BibleSDKProviderProps>): React.ReactElement {
15
- return <BibleSDKContext.Provider value={{ appKey }}>{children}</BibleSDKContext.Provider>;
19
+ // Syncing appKey and apiHost to YouVersionPlatformConfiguration
20
+ // so that this can be in sync with any other code that uses
21
+ // the YouVersionPlatformConfiguration, of which a lot of our
22
+ // core package uses this configuration.
23
+ useEffect(() => {
24
+ YouVersionPlatformConfiguration.appKey = appKey;
25
+ YouVersionPlatformConfiguration.apiHost = apiHost;
26
+ }, [appKey, apiHost]);
27
+ // Installation ID gets set automatically by YouVersionPlatformConfiguration
28
+ return (
29
+ <BibleSDKContext.Provider
30
+ value={{ appKey, apiHost, installationId: YouVersionPlatformConfiguration.installationId }}
31
+ >
32
+ {children}
33
+ </BibleSDKContext.Provider>
34
+ );
16
35
  }
@@ -19,11 +19,6 @@ vi.mock('@youversion/platform-core', async () => {
19
19
  isApiClient: true,
20
20
  };
21
21
  }),
22
- YouVersionPlatformConfiguration: {
23
- get installationId() {
24
- return 'auto-generated-uuid';
25
- },
26
- },
27
22
  };
28
23
  });
29
24
 
@@ -49,7 +44,6 @@ describe('useBibleClient', () => {
49
44
 
50
45
  expect(ApiClient).toHaveBeenCalledWith({
51
46
  appKey: mockAppKey,
52
- installationId: 'auto-generated-uuid',
53
47
  });
54
48
  expect(BibleClient).toHaveBeenCalledWith(expect.objectContaining({ isApiClient: true }));
55
49
  expect(result.current).toEqual(expect.objectContaining({ isBibleClient: true }));
@@ -117,7 +111,6 @@ describe('useBibleClient', () => {
117
111
  expect(BibleClient).toHaveBeenCalledTimes(1);
118
112
  expect(ApiClient).toHaveBeenCalledWith({
119
113
  appKey: mockAppKey,
120
- installationId: 'auto-generated-uuid',
121
114
  });
122
115
 
123
116
  currentAppKey = 'new-app-key';
@@ -129,7 +122,6 @@ describe('useBibleClient', () => {
129
122
 
130
123
  expect(ApiClient).toHaveBeenLastCalledWith({
131
124
  appKey: 'new-app-key',
132
- installationId: 'auto-generated-uuid',
133
125
  });
134
126
  });
135
127
 
@@ -2,21 +2,24 @@
2
2
 
3
3
  import { useContext, useMemo } from 'react';
4
4
  import { BibleSDKContext } from './context';
5
- import { BibleClient, ApiClient, YouVersionPlatformConfiguration } from '@youversion/platform-core';
5
+ import { BibleClient, ApiClient } from '@youversion/platform-core';
6
6
 
7
7
  export function useBibleClient(): BibleClient {
8
8
  const context = useContext(BibleSDKContext);
9
+
9
10
  return useMemo(() => {
10
11
  if (!context?.appKey) {
11
12
  throw new Error(
12
13
  'BibleSDK context not found. Make sure your component is wrapped with BibleSDKProvider and an API key is provided.',
13
14
  );
14
15
  }
16
+
15
17
  return new BibleClient(
16
18
  new ApiClient({
17
19
  appKey: context.appKey,
18
- installationId: YouVersionPlatformConfiguration.installationId,
20
+ apiHost: context.apiHost,
21
+ installationId: context.installationId,
19
22
  }),
20
23
  );
21
- }, [context?.appKey]);
24
+ }, [context?.apiHost, context?.appKey, context?.installationId]);
22
25
  }
@@ -22,11 +22,6 @@ vi.mock('@youversion/platform-core', async () => {
22
22
  ApiClient: vi.fn(function () {
23
23
  return { isApiClient: true };
24
24
  }),
25
- YouVersionPlatformConfiguration: {
26
- get installationId() {
27
- return 'auto-generated-uuid';
28
- },
29
- },
30
25
  };
31
26
  });
32
27
 
@@ -115,7 +110,6 @@ describe('useHighlights', () => {
115
110
 
116
111
  expect(ApiClient).toHaveBeenCalledWith({
117
112
  appKey: mockAppKey,
118
- installationId: 'auto-generated-uuid',
119
113
  });
120
114
  expect(HighlightsClient).toHaveBeenCalledWith(expect.objectContaining({ isApiClient: true }));
121
115
  });
@@ -3,11 +3,7 @@
3
3
  import { useMemo, useCallback } from 'react';
4
4
  import { useContext } from 'react';
5
5
  import { BibleSDKContext } from './context';
6
- import {
7
- HighlightsClient,
8
- ApiClient,
9
- YouVersionPlatformConfiguration,
10
- } from '@youversion/platform-core';
6
+ import { HighlightsClient, ApiClient } from '@youversion/platform-core';
11
7
  import { useApiData, type UseApiDataOptions } from './useApiData';
12
8
  import {
13
9
  type GetHighlightsOptions,
@@ -39,10 +35,11 @@ export function useHighlights(
39
35
  return new HighlightsClient(
40
36
  new ApiClient({
41
37
  appKey: context.appKey,
42
- installationId: YouVersionPlatformConfiguration.installationId,
38
+ apiHost: context.apiHost,
39
+ installationId: context.installationId,
43
40
  }),
44
41
  );
45
- }, [context?.appKey]);
42
+ }, [context?.apiHost, context?.appKey, context?.installationId]);
46
43
 
47
44
  const { data, loading, error, refetch } = useApiData<Collection<Highlight>>(
48
45
  () => highlightsClient.getHighlights(options),
@@ -22,11 +22,6 @@ vi.mock('@youversion/platform-core', async () => {
22
22
  ApiClient: vi.fn(function () {
23
23
  return { isApiClient: true };
24
24
  }),
25
- YouVersionPlatformConfiguration: {
26
- get installationId() {
27
- return 'auto-generated-uuid';
28
- },
29
- },
30
25
  };
31
26
  });
32
27
 
@@ -129,7 +124,6 @@ describe('useLanguages', () => {
129
124
 
130
125
  expect(ApiClient).toHaveBeenCalledWith({
131
126
  appKey: mockAppKey,
132
- installationId: 'auto-generated-uuid',
133
127
  });
134
128
  expect(LanguagesClient).toHaveBeenCalledWith(expect.objectContaining({ isApiClient: true }));
135
129
  });
@@ -3,11 +3,7 @@
3
3
  import { useMemo } from 'react';
4
4
  import { useContext } from 'react';
5
5
  import { BibleSDKContext } from './context';
6
- import {
7
- LanguagesClient,
8
- ApiClient,
9
- YouVersionPlatformConfiguration,
10
- } from '@youversion/platform-core';
6
+ import { LanguagesClient, ApiClient } from '@youversion/platform-core';
11
7
  import { useApiData, type UseApiDataOptions } from './useApiData';
12
8
  import {
13
9
  type GetLanguagesOptions,
@@ -35,10 +31,11 @@ export function useLanguages(
35
31
  return new LanguagesClient(
36
32
  new ApiClient({
37
33
  appKey: context.appKey,
38
- installationId: YouVersionPlatformConfiguration.installationId,
34
+ apiHost: context.apiHost,
35
+ installationId: context.installationId,
39
36
  }),
40
37
  );
41
- }, [context?.appKey]);
38
+ }, [context?.apiHost, context?.appKey, context?.installationId]);
42
39
 
43
40
  const { data, loading, error, refetch } = useApiData<Collection<Language>>(
44
41
  () => languagesClient.getLanguages(options),
@@ -5,8 +5,6 @@ import { useVerseOfTheDay } from './useVOTD';
5
5
  import { BibleSDKContext } from './context';
6
6
  import { BibleClient, ApiClient, type VOTD } from '@youversion/platform-core';
7
7
 
8
- const MOCK_INSTALLATION_ID = 'auto-generated-uuid';
9
-
10
8
  // Mock the core package
11
9
  vi.mock('@youversion/platform-core', async () => {
12
10
  const actual = await vi.importActual('@youversion/platform-core');
@@ -18,11 +16,6 @@ vi.mock('@youversion/platform-core', async () => {
18
16
  ApiClient: vi.fn(function () {
19
17
  return { isApiClient: true };
20
18
  }),
21
- YouVersionPlatformConfiguration: {
22
- get installationId() {
23
- return MOCK_INSTALLATION_ID;
24
- },
25
- },
26
19
  };
27
20
  });
28
21
 
@@ -88,7 +81,6 @@ describe('useVerseOfTheDay', () => {
88
81
 
89
82
  expect(ApiClient).toHaveBeenCalledWith({
90
83
  appKey: mockAppKey,
91
- installationId: MOCK_INSTALLATION_ID,
92
84
  });
93
85
  expect(BibleClient).toHaveBeenCalledWith(expect.objectContaining({ isApiClient: true }));
94
86
  });