@ninetailed/experience.js-react 5.0.0-beta.3 → 6.0.1-beta.1
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 +303 -408
- package/index.js +308 -412
- package/lib/Experience/ComponentMarker.d.ts +2 -0
- package/lib/Experience/index.d.ts +0 -1
- package/lib/Experience/useExperience.d.ts +9 -6
- package/lib/Experience/useExperienceSelectionMiddleware.d.ts +3 -2
- package/lib/NinetailedProvider.d.ts +1 -0
- package/lib/index.d.ts +1 -2
- package/lib/useProfile.d.ts +8 -1
- package/package.json +5 -5
- package/lib/Experience/TrackExperience.d.ts +0 -12
- package/lib/RenderPlugin/ComponentWrapper.d.ts +0 -9
- package/lib/RenderPlugin/RenderPlugin.d.ts +0 -13
|
@@ -5,4 +5,3 @@ export { useExperience } from './useExperience';
|
|
|
5
5
|
export { ExperimentsProvider } from './ExperimentsProvider';
|
|
6
6
|
export { useExperiments } from './useExperiments';
|
|
7
7
|
export { useJoinExperiment } from './useJoinExperiment';
|
|
8
|
-
export { TrackExperience } from './TrackExperience';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Baseline, ExperienceConfiguration, Profile, Reference, VariantRef } from '@ninetailed/experience.js';
|
|
2
|
-
type Load = {
|
|
2
|
+
type Load<Variant extends Reference> = {
|
|
3
3
|
status: 'loading';
|
|
4
4
|
loading: boolean;
|
|
5
5
|
hasVariants: boolean;
|
|
6
6
|
baseline: Baseline;
|
|
7
7
|
experience: null;
|
|
8
|
-
variant:
|
|
8
|
+
variant: Variant;
|
|
9
|
+
variantIndex: 0;
|
|
9
10
|
audience: null;
|
|
10
11
|
isPersonalized: boolean;
|
|
11
12
|
profile: null;
|
|
@@ -17,7 +18,8 @@ type Success<Variant extends Reference> = {
|
|
|
17
18
|
hasVariants: boolean;
|
|
18
19
|
baseline: Baseline;
|
|
19
20
|
experience: ExperienceConfiguration<Variant> | null;
|
|
20
|
-
variant: Variant
|
|
21
|
+
variant: Variant;
|
|
22
|
+
variantIndex: number;
|
|
21
23
|
audience: {
|
|
22
24
|
id: string;
|
|
23
25
|
} | null;
|
|
@@ -25,13 +27,14 @@ type Success<Variant extends Reference> = {
|
|
|
25
27
|
profile: Profile;
|
|
26
28
|
error: null;
|
|
27
29
|
};
|
|
28
|
-
type Fail = {
|
|
30
|
+
type Fail<Variant extends Reference> = {
|
|
29
31
|
status: 'error';
|
|
30
32
|
loading: boolean;
|
|
31
33
|
hasVariants: boolean;
|
|
32
34
|
baseline: Baseline;
|
|
33
35
|
experience: null;
|
|
34
|
-
variant:
|
|
36
|
+
variant: Variant;
|
|
37
|
+
variantIndex: 0;
|
|
35
38
|
audience: null;
|
|
36
39
|
isPersonalized: boolean;
|
|
37
40
|
profile: null;
|
|
@@ -41,6 +44,6 @@ type UseExperienceArgs<Variant extends Reference> = {
|
|
|
41
44
|
baseline: Baseline;
|
|
42
45
|
experiences: ExperienceConfiguration<Variant>[];
|
|
43
46
|
};
|
|
44
|
-
type UseExperienceResponse<Variant extends Reference> = Load | Success<Variant | VariantRef> | Fail
|
|
47
|
+
type UseExperienceResponse<Variant extends Reference> = Load<Variant | VariantRef> | Success<Variant | VariantRef> | Fail<Variant | VariantRef>;
|
|
45
48
|
export declare const useExperience: <Variant extends Reference>({ baseline, experiences, }: UseExperienceArgs<Variant>) => UseExperienceResponse<Variant>;
|
|
46
49
|
export {};
|
|
@@ -4,8 +4,9 @@ type UseExperienceSelectionMiddlewareArg<Variant extends Reference> = {
|
|
|
4
4
|
baseline: Reference;
|
|
5
5
|
profile: Profile | null;
|
|
6
6
|
};
|
|
7
|
-
export declare const useExperienceSelectionMiddleware: <Variant extends Reference>({ experiences, baseline, profile, }: UseExperienceSelectionMiddlewareArg<Variant>) => ({ experience, variant, }: import("@ninetailed/experience.js").ExperienceSelectionMiddlewareReturnArg<Variant | import("@ninetailed/experience.js-shared").VariantRef>) => {
|
|
7
|
+
export declare const useExperienceSelectionMiddleware: <Variant extends Reference>({ experiences, baseline, profile, }: UseExperienceSelectionMiddlewareArg<Variant>) => ({ experience, variant, variantIndex, }: import("@ninetailed/experience.js").ExperienceSelectionMiddlewareReturnArg<Variant | import("@ninetailed/experience.js-shared").VariantRef>) => {
|
|
8
8
|
experience: ExperienceConfiguration<Variant | import("@ninetailed/experience.js-shared").VariantRef> | null;
|
|
9
|
-
variant: Variant | import("@ninetailed/experience.js-shared").VariantRef
|
|
9
|
+
variant: Variant | import("@ninetailed/experience.js-shared").VariantRef;
|
|
10
|
+
variantIndex: number;
|
|
10
11
|
};
|
|
11
12
|
export {};
|
|
@@ -16,6 +16,7 @@ export type NinetailedProviderInstantiationProps = {
|
|
|
16
16
|
requestTimeout?: number;
|
|
17
17
|
onLog?: OnLogHandler;
|
|
18
18
|
onError?: OnErrorHandler;
|
|
19
|
+
componentViewTrackingThreshold?: number;
|
|
19
20
|
} & ExperimentProviderProps;
|
|
20
21
|
export type NinetailedProviderProps = NinetailedProviderInstantiationProps | ({
|
|
21
22
|
ninetailed: Ninetailed;
|
package/lib/index.d.ts
CHANGED
|
@@ -9,6 +9,5 @@ export { Personalize } from './Personalize';
|
|
|
9
9
|
export type { PersonalizedComponent } from './Personalize';
|
|
10
10
|
export { MergeTag } from './MergeTag';
|
|
11
11
|
export { TrackHasSeenComponent } from './TrackHasSeenComponent';
|
|
12
|
-
export
|
|
13
|
-
export { ExperimentsProvider, Experience, ESRProvider, ESRLoadingComponent, DefaultExperienceLoadingComponent, TrackExperience, useExperience, useExperiments, useJoinExperiment, } from './Experience';
|
|
12
|
+
export { ExperimentsProvider, Experience, ESRProvider, ESRLoadingComponent, DefaultExperienceLoadingComponent, useExperience, useExperiments, useJoinExperiment, } from './Experience';
|
|
14
13
|
export type { ExperienceProps, ExperienceBaseProps, ExperienceComponent, ExperienceLoadingComponent, } from './Experience';
|
package/lib/useProfile.d.ts
CHANGED
|
@@ -3,13 +3,19 @@ export declare const useProfile: () => {
|
|
|
3
3
|
from: "api" | "hydrated";
|
|
4
4
|
status: "loading";
|
|
5
5
|
profile: null;
|
|
6
|
-
error: null;
|
|
6
|
+
error: null; /**
|
|
7
|
+
* This effect compares the old and new profile state before updating it.
|
|
8
|
+
* We use a ref to avoid an infinite loop which can happen when an empty profile state was updated with no changes.
|
|
9
|
+
* This behaviour occurred as the validation handling on the error property was not set properly in the "CreateProfile" and "UpdateProfile" endpoint types.
|
|
10
|
+
* Furthermore, it was also observed, that it "only" occurred when the preview plugin was used in parallel.
|
|
11
|
+
*/
|
|
7
12
|
} | {
|
|
8
13
|
loading: boolean;
|
|
9
14
|
from: "api" | "hydrated";
|
|
10
15
|
status: "success";
|
|
11
16
|
profile: {
|
|
12
17
|
id: string;
|
|
18
|
+
stableId: string;
|
|
13
19
|
random: number;
|
|
14
20
|
audiences: string[];
|
|
15
21
|
traits: import("@ninetailed/experience.js-shared").Properties;
|
|
@@ -28,6 +34,7 @@ export declare const useProfile: () => {
|
|
|
28
34
|
timezone?: string | undefined;
|
|
29
35
|
};
|
|
30
36
|
session: {
|
|
37
|
+
id: string;
|
|
31
38
|
isReturningVisitor: boolean;
|
|
32
39
|
landingPage: {
|
|
33
40
|
path: string;
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ninetailed/experience.js-react",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.1-beta.1",
|
|
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": "
|
|
11
|
-
"react-
|
|
12
|
-
"@ninetailed/experience.js-shared": "
|
|
10
|
+
"@ninetailed/experience.js": "6.0.1-beta.1",
|
|
11
|
+
"react-is": "18.2.0",
|
|
12
|
+
"@ninetailed/experience.js-shared": "6.0.1-beta.1",
|
|
13
13
|
"radash": "10.9.0",
|
|
14
|
-
"
|
|
14
|
+
"react-intersection-observer": "8.34.0"
|
|
15
15
|
},
|
|
16
16
|
"module": "./index.js",
|
|
17
17
|
"main": "./index.cjs",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Profile } from '@ninetailed/experience.js-shared';
|
|
3
|
-
import { ExperienceConfiguration } from '@ninetailed/experience.js';
|
|
4
|
-
type TrackExperienceProps = {
|
|
5
|
-
experience: ExperienceConfiguration<any>;
|
|
6
|
-
variant: {
|
|
7
|
-
id: string;
|
|
8
|
-
};
|
|
9
|
-
profile: Profile;
|
|
10
|
-
};
|
|
11
|
-
export declare const TrackExperience: React.FC<React.PropsWithChildren<TrackExperienceProps>>;
|
|
12
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FC, PropsWithChildren } from 'react';
|
|
2
|
-
import { Baseline, ExperienceConfiguration } from '@ninetailed/experience.js';
|
|
3
|
-
import { Variant } from '../Experience/types';
|
|
4
|
-
type ComponentRenderInterceptorWrapperProps = {
|
|
5
|
-
experiences: ExperienceConfiguration<Variant<any>>[];
|
|
6
|
-
baseline: Baseline;
|
|
7
|
-
};
|
|
8
|
-
export declare const ComponentWrapper: FC<PropsWithChildren<ComponentRenderInterceptorWrapperProps>>;
|
|
9
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { AnalyticsPlugin } from 'analytics';
|
|
2
|
-
import React, { Dispatch, SetStateAction } from 'react';
|
|
3
|
-
import { Baseline, ExperienceConfiguration } from '@ninetailed/experience.js';
|
|
4
|
-
export type RenderPluginProps = {
|
|
5
|
-
setComponentProps: Dispatch<SetStateAction<object>>;
|
|
6
|
-
experiences: ExperienceConfiguration[];
|
|
7
|
-
baseline: Baseline;
|
|
8
|
-
};
|
|
9
|
-
export type RenderPluginWrapperComponent = React.ComponentType<React.PropsWithChildren<RenderPluginProps>>;
|
|
10
|
-
export interface RenderPlugin extends AnalyticsPlugin {
|
|
11
|
-
getRenderWrapper: () => RenderPluginWrapperComponent;
|
|
12
|
-
}
|
|
13
|
-
export declare function isRenderPlugin(plugin: AnalyticsPlugin): plugin is RenderPlugin;
|