@ninetailed/experience.js-react 4.2.0-beta.7 → 4.2.0-beta.9

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/index.cjs CHANGED
@@ -2380,39 +2380,47 @@ const ExperimentsProvider = ({
2380
2380
  }));
2381
2381
  };
2382
2382
 
2383
- const NinetailedProvider = ({
2384
- children,
2385
- clientId,
2386
- experiments: _experiments = [],
2387
- maximumActiveExperiments,
2388
- environment,
2389
- preview,
2390
- url,
2391
- profile,
2392
- locale,
2393
- requestTimeout,
2394
- plugins: _plugins = [],
2395
- onLog,
2396
- onError
2397
- }) => {
2398
- const ninetailed = React.useMemo(() => new experience_js.Ninetailed({
2399
- clientId,
2400
- environment,
2401
- preview
2402
- }, {
2403
- url,
2404
- plugins: _plugins,
2405
- profile,
2406
- locale,
2407
- requestTimeout,
2408
- onLog,
2409
- onError
2410
- }), []);
2383
+ const NinetailedProvider = props => {
2384
+ const ninetailed = React.useMemo(() => {
2385
+ if ('ninetailed' in props) {
2386
+ return props.ninetailed;
2387
+ }
2388
+ const {
2389
+ clientId,
2390
+ environment,
2391
+ preview,
2392
+ url,
2393
+ profile,
2394
+ locale,
2395
+ requestTimeout,
2396
+ plugins = [],
2397
+ onLog,
2398
+ onError
2399
+ } = props;
2400
+ return new experience_js.Ninetailed({
2401
+ clientId,
2402
+ environment,
2403
+ preview
2404
+ }, {
2405
+ url,
2406
+ plugins,
2407
+ profile,
2408
+ locale,
2409
+ requestTimeout,
2410
+ onLog,
2411
+ onError
2412
+ });
2413
+ }, []);
2414
+ const {
2415
+ experiments = [],
2416
+ maximumActiveExperiments,
2417
+ children
2418
+ } = props;
2411
2419
  return jsxRuntime.jsx(NinetailedContext.Provider, Object.assign({
2412
2420
  value: ninetailed
2413
2421
  }, {
2414
2422
  children: jsxRuntime.jsx(ExperimentsProvider, Object.assign({
2415
- experiments: _experiments,
2423
+ experiments: experiments,
2416
2424
  maximumActiveExperiments: maximumActiveExperiments
2417
2425
  }, {
2418
2426
  children: children
package/index.js CHANGED
@@ -2372,39 +2372,47 @@ const ExperimentsProvider = ({
2372
2372
  }));
2373
2373
  };
2374
2374
 
2375
- const NinetailedProvider = ({
2376
- children,
2377
- clientId,
2378
- experiments: _experiments = [],
2379
- maximumActiveExperiments,
2380
- environment,
2381
- preview,
2382
- url,
2383
- profile,
2384
- locale,
2385
- requestTimeout,
2386
- plugins: _plugins = [],
2387
- onLog,
2388
- onError
2389
- }) => {
2390
- const ninetailed = useMemo(() => new Ninetailed({
2391
- clientId,
2392
- environment,
2393
- preview
2394
- }, {
2395
- url,
2396
- plugins: _plugins,
2397
- profile,
2398
- locale,
2399
- requestTimeout,
2400
- onLog,
2401
- onError
2402
- }), []);
2375
+ const NinetailedProvider = props => {
2376
+ const ninetailed = useMemo(() => {
2377
+ if ('ninetailed' in props) {
2378
+ return props.ninetailed;
2379
+ }
2380
+ const {
2381
+ clientId,
2382
+ environment,
2383
+ preview,
2384
+ url,
2385
+ profile,
2386
+ locale,
2387
+ requestTimeout,
2388
+ plugins = [],
2389
+ onLog,
2390
+ onError
2391
+ } = props;
2392
+ return new Ninetailed({
2393
+ clientId,
2394
+ environment,
2395
+ preview
2396
+ }, {
2397
+ url,
2398
+ plugins,
2399
+ profile,
2400
+ locale,
2401
+ requestTimeout,
2402
+ onLog,
2403
+ onError
2404
+ });
2405
+ }, []);
2406
+ const {
2407
+ experiments = [],
2408
+ maximumActiveExperiments,
2409
+ children
2410
+ } = props;
2403
2411
  return jsx(NinetailedContext.Provider, Object.assign({
2404
2412
  value: ninetailed
2405
2413
  }, {
2406
2414
  children: jsx(ExperimentsProvider, Object.assign({
2407
- experiments: _experiments,
2415
+ experiments: experiments,
2408
2416
  maximumActiveExperiments: maximumActiveExperiments
2409
2417
  }, {
2410
2418
  children: children
@@ -1,11 +1,13 @@
1
1
  import React from 'react';
2
- import { NinetailedPlugin, ExperienceConfiguration } from '@ninetailed/experience.js';
2
+ import { Ninetailed, NinetailedPlugin, ExperienceConfiguration } from '@ninetailed/experience.js';
3
3
  import { Profile, Locale, OnErrorHandler, OnLogHandler } from '@ninetailed/experience.js-shared';
4
- export type NinetailedProviderProps = {
5
- clientId: string;
6
- environment?: string;
4
+ type ExperimentProviderProps = {
7
5
  experiments?: ExperienceConfiguration<any>[];
8
6
  maximumActiveExperiments?: number;
7
+ };
8
+ export type NinetailedProviderInstantiationProps = {
9
+ clientId: string;
10
+ environment?: string;
9
11
  preview?: boolean;
10
12
  url?: string;
11
13
  plugins?: (NinetailedPlugin | NinetailedPlugin[])[];
@@ -14,5 +16,9 @@ export type NinetailedProviderProps = {
14
16
  requestTimeout?: number;
15
17
  onLog?: OnLogHandler;
16
18
  onError?: OnErrorHandler;
17
- };
18
- export declare const NinetailedProvider: ({ children, clientId, experiments, maximumActiveExperiments, environment, preview, url, profile, locale, requestTimeout, plugins, onLog, onError, }: React.PropsWithChildren<NinetailedProviderProps>) => JSX.Element;
19
+ } & ExperimentProviderProps;
20
+ export type NinetailedProviderProps = NinetailedProviderInstantiationProps | ({
21
+ ninetailed: Ninetailed;
22
+ } & ExperimentProviderProps);
23
+ export declare const NinetailedProvider: (props: React.PropsWithChildren<NinetailedProviderProps>) => JSX.Element;
24
+ export {};
package/lib/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export type { Profile, Variant } from '@ninetailed/experience.js-shared';
2
2
  export type { ExperienceConfiguration, ExperienceType, EXPERIENCE_TRAIT_PREFIX, } from '@ninetailed/experience.js';
3
3
  export { NinetailedProvider } from './NinetailedProvider';
4
- export type { NinetailedProviderProps } from './NinetailedProvider';
4
+ export type { NinetailedProviderProps, NinetailedProviderInstantiationProps, } from './NinetailedProvider';
5
5
  export { useNinetailed } from './useNinetailed';
6
6
  export { useProfile } from './useProfile';
7
7
  export { usePersonalize } from './usePersonalize';
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@ninetailed/experience.js-react",
3
- "version": "4.2.0-beta.7",
3
+ "version": "4.2.0-beta.9",
4
4
  "peerDependencies": {
5
5
  "react": ">=16.8.0"
6
6
  },
7
7
  "dependencies": {
8
8
  "@analytics/google-analytics": "0.5.3",
9
9
  "react-visibility-sensor": "5.1.1",
10
- "@ninetailed/experience.js": "4.2.0-beta.7",
10
+ "@ninetailed/experience.js": "4.2.0-beta.9",
11
11
  "react-intersection-observer": "8.34.0",
12
- "@ninetailed/experience.js-shared": "4.2.0-beta.7",
12
+ "@ninetailed/experience.js-shared": "4.2.0-beta.9",
13
13
  "radash": "10.9.0",
14
14
  "analytics": "0.8.1"
15
15
  },