@ninetailed/experience.js-react 4.2.0-beta.5 → 4.2.0-beta.7
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 +65 -52
- package/index.js +66 -53
- package/package.json +3 -3
package/index.cjs
CHANGED
|
@@ -1946,6 +1946,35 @@ const useExperiments = () => {
|
|
|
1946
1946
|
};
|
|
1947
1947
|
};
|
|
1948
1948
|
|
|
1949
|
+
const useExperienceSelectionMiddleware = ({
|
|
1950
|
+
experiences,
|
|
1951
|
+
baseline,
|
|
1952
|
+
profile
|
|
1953
|
+
}) => {
|
|
1954
|
+
const {
|
|
1955
|
+
plugins
|
|
1956
|
+
} = useNinetailed();
|
|
1957
|
+
const [_, setCurrentTime] = React.useState(Date.now());
|
|
1958
|
+
const {
|
|
1959
|
+
addListeners,
|
|
1960
|
+
removeListeners,
|
|
1961
|
+
middleware
|
|
1962
|
+
} = React.useMemo(() => experience_js.makeExperienceSelectMiddleware({
|
|
1963
|
+
plugins,
|
|
1964
|
+
experiences,
|
|
1965
|
+
baseline,
|
|
1966
|
+
profile,
|
|
1967
|
+
onChange: () => setCurrentTime(Date.now())
|
|
1968
|
+
}), [plugins, experiences, baseline, profile]);
|
|
1969
|
+
React.useEffect(() => {
|
|
1970
|
+
addListeners();
|
|
1971
|
+
return () => {
|
|
1972
|
+
removeListeners();
|
|
1973
|
+
};
|
|
1974
|
+
}, [addListeners, removeListeners]);
|
|
1975
|
+
return middleware;
|
|
1976
|
+
};
|
|
1977
|
+
|
|
1949
1978
|
const useExperience = ({
|
|
1950
1979
|
baseline,
|
|
1951
1980
|
experiences
|
|
@@ -1959,6 +1988,31 @@ const useExperience = ({
|
|
|
1959
1988
|
status,
|
|
1960
1989
|
profile
|
|
1961
1990
|
} = profileState;
|
|
1991
|
+
const experienceSelectionMiddleware = useExperienceSelectionMiddleware({
|
|
1992
|
+
experiences,
|
|
1993
|
+
baseline,
|
|
1994
|
+
profile
|
|
1995
|
+
});
|
|
1996
|
+
const overrideResult = _a => {
|
|
1997
|
+
var {
|
|
1998
|
+
experience: originalExperience,
|
|
1999
|
+
variant: originalVariant
|
|
2000
|
+
} = _a,
|
|
2001
|
+
other = __rest(_a, ["experience", "variant"]);
|
|
2002
|
+
const {
|
|
2003
|
+
experience,
|
|
2004
|
+
variant
|
|
2005
|
+
} = experienceSelectionMiddleware({
|
|
2006
|
+
experience: originalExperience,
|
|
2007
|
+
variant: originalVariant
|
|
2008
|
+
});
|
|
2009
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2010
|
+
// @ts-ignore
|
|
2011
|
+
return Object.assign(Object.assign({}, other), {
|
|
2012
|
+
experience,
|
|
2013
|
+
variant
|
|
2014
|
+
});
|
|
2015
|
+
};
|
|
1962
2016
|
const baseReturn = Object.assign(Object.assign({}, profileState), {
|
|
1963
2017
|
hasVariants,
|
|
1964
2018
|
baseline
|
|
@@ -1973,17 +2027,17 @@ const useExperience = ({
|
|
|
1973
2027
|
if (status === 'loading') {
|
|
1974
2028
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1975
2029
|
// @ts-ignore
|
|
1976
|
-
return emptyReturn;
|
|
2030
|
+
return overrideResult(emptyReturn);
|
|
1977
2031
|
}
|
|
1978
2032
|
if (status === 'error') {
|
|
1979
2033
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1980
2034
|
// @ts-ignore
|
|
1981
|
-
return emptyReturn;
|
|
2035
|
+
return overrideResult(emptyReturn);
|
|
1982
2036
|
}
|
|
1983
2037
|
if (!profile) {
|
|
1984
2038
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1985
2039
|
// @ts-ignore
|
|
1986
|
-
return emptyReturn;
|
|
2040
|
+
return overrideResult(emptyReturn);
|
|
1987
2041
|
}
|
|
1988
2042
|
const activeExperiments = experience_js.selectActiveExperiments(experiments, profile);
|
|
1989
2043
|
const experience = experience_js.selectExperience({
|
|
@@ -1994,9 +2048,9 @@ const useExperience = ({
|
|
|
1994
2048
|
if (!experience) {
|
|
1995
2049
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1996
2050
|
// @ts-ignore
|
|
1997
|
-
return Object.assign(Object.assign({}, emptyReturn), {
|
|
2051
|
+
return overrideResult(Object.assign(Object.assign({}, emptyReturn), {
|
|
1998
2052
|
profile
|
|
1999
|
-
});
|
|
2053
|
+
}));
|
|
2000
2054
|
}
|
|
2001
2055
|
const audience = experience.audience;
|
|
2002
2056
|
const variant = experience_js.selectExperienceVariant({
|
|
@@ -2005,7 +2059,7 @@ const useExperience = ({
|
|
|
2005
2059
|
profile
|
|
2006
2060
|
});
|
|
2007
2061
|
if (!variant) {
|
|
2008
|
-
return Object.assign(Object.assign({}, baseReturn), {
|
|
2062
|
+
return overrideResult(Object.assign(Object.assign({}, baseReturn), {
|
|
2009
2063
|
status: 'success',
|
|
2010
2064
|
loading: false,
|
|
2011
2065
|
error: null,
|
|
@@ -2014,9 +2068,9 @@ const useExperience = ({
|
|
|
2014
2068
|
audience: audience ? audience : null,
|
|
2015
2069
|
profile,
|
|
2016
2070
|
isPersonalized: false
|
|
2017
|
-
});
|
|
2071
|
+
}));
|
|
2018
2072
|
}
|
|
2019
|
-
return Object.assign(Object.assign({}, baseReturn), {
|
|
2073
|
+
return overrideResult(Object.assign(Object.assign({}, baseReturn), {
|
|
2020
2074
|
status: 'success',
|
|
2021
2075
|
loading: false,
|
|
2022
2076
|
error: null,
|
|
@@ -2025,7 +2079,7 @@ const useExperience = ({
|
|
|
2025
2079
|
audience: audience ? audience : null,
|
|
2026
2080
|
profile,
|
|
2027
2081
|
isPersonalized: true
|
|
2028
|
-
});
|
|
2082
|
+
}));
|
|
2029
2083
|
};
|
|
2030
2084
|
|
|
2031
2085
|
const useJoinExperiment = () => {
|
|
@@ -2033,35 +2087,6 @@ const useJoinExperiment = () => {
|
|
|
2033
2087
|
return context.joinExperiment;
|
|
2034
2088
|
};
|
|
2035
2089
|
|
|
2036
|
-
const useExperienceSelectionMiddleware = ({
|
|
2037
|
-
experiences,
|
|
2038
|
-
baseline,
|
|
2039
|
-
profile
|
|
2040
|
-
}) => {
|
|
2041
|
-
const {
|
|
2042
|
-
plugins
|
|
2043
|
-
} = useNinetailed();
|
|
2044
|
-
const [_, setCurrentTime] = React.useState(Date.now());
|
|
2045
|
-
const {
|
|
2046
|
-
addListeners,
|
|
2047
|
-
removeListeners,
|
|
2048
|
-
middleware
|
|
2049
|
-
} = React.useMemo(() => experience_js.makeExperienceSelectMiddleware({
|
|
2050
|
-
plugins,
|
|
2051
|
-
experiences,
|
|
2052
|
-
baseline,
|
|
2053
|
-
profile,
|
|
2054
|
-
onChange: () => setCurrentTime(Date.now())
|
|
2055
|
-
}), [plugins, experiences, baseline, profile]);
|
|
2056
|
-
React.useEffect(() => {
|
|
2057
|
-
addListeners();
|
|
2058
|
-
return () => {
|
|
2059
|
-
removeListeners();
|
|
2060
|
-
};
|
|
2061
|
-
}, [addListeners, removeListeners]);
|
|
2062
|
-
return middleware;
|
|
2063
|
-
};
|
|
2064
|
-
|
|
2065
2090
|
const DefaultExperienceLoadingComponent = _a => {
|
|
2066
2091
|
var {
|
|
2067
2092
|
component: Component,
|
|
@@ -2119,8 +2144,8 @@ const Experience = _a => {
|
|
|
2119
2144
|
const {
|
|
2120
2145
|
status,
|
|
2121
2146
|
hasVariants,
|
|
2122
|
-
experience
|
|
2123
|
-
variant
|
|
2147
|
+
experience,
|
|
2148
|
+
variant,
|
|
2124
2149
|
audience,
|
|
2125
2150
|
isPersonalized,
|
|
2126
2151
|
profile
|
|
@@ -2128,18 +2153,6 @@ const Experience = _a => {
|
|
|
2128
2153
|
baseline,
|
|
2129
2154
|
experiences
|
|
2130
2155
|
});
|
|
2131
|
-
const experienceSelectionMiddleware = useExperienceSelectionMiddleware({
|
|
2132
|
-
experiences,
|
|
2133
|
-
baseline,
|
|
2134
|
-
profile
|
|
2135
|
-
});
|
|
2136
|
-
const {
|
|
2137
|
-
experience,
|
|
2138
|
-
variant
|
|
2139
|
-
} = experienceSelectionMiddleware({
|
|
2140
|
-
experience: originalExperience,
|
|
2141
|
-
variant: originalVariant
|
|
2142
|
-
});
|
|
2143
2156
|
const joinExperiment = useJoinExperiment();
|
|
2144
2157
|
React.useEffect(() => {
|
|
2145
2158
|
if (status === 'success' && experience && profile) {
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import React, { createContext, useContext, useEffect, useState, useRef, useMemo, createElement as createElement$1, useCallback } from 'react';
|
|
3
|
-
import { selectDistribution, selectHasExperienceVariants, selectActiveExperiments, selectExperience, selectExperienceVariant,
|
|
3
|
+
import { selectDistribution, makeExperienceSelectMiddleware, selectHasExperienceVariants, selectActiveExperiments, selectExperience, selectExperienceVariant, Ninetailed, selectVariant } from '@ninetailed/experience.js';
|
|
4
4
|
import { useInView } from 'react-intersection-observer';
|
|
5
5
|
import { isBrowser, logger } from '@ninetailed/experience.js-shared';
|
|
6
6
|
import { isEqual, debounce as debounce$1, get as get$1 } from 'radash';
|
|
@@ -1938,6 +1938,35 @@ const useExperiments = () => {
|
|
|
1938
1938
|
};
|
|
1939
1939
|
};
|
|
1940
1940
|
|
|
1941
|
+
const useExperienceSelectionMiddleware = ({
|
|
1942
|
+
experiences,
|
|
1943
|
+
baseline,
|
|
1944
|
+
profile
|
|
1945
|
+
}) => {
|
|
1946
|
+
const {
|
|
1947
|
+
plugins
|
|
1948
|
+
} = useNinetailed();
|
|
1949
|
+
const [_, setCurrentTime] = useState(Date.now());
|
|
1950
|
+
const {
|
|
1951
|
+
addListeners,
|
|
1952
|
+
removeListeners,
|
|
1953
|
+
middleware
|
|
1954
|
+
} = useMemo(() => makeExperienceSelectMiddleware({
|
|
1955
|
+
plugins,
|
|
1956
|
+
experiences,
|
|
1957
|
+
baseline,
|
|
1958
|
+
profile,
|
|
1959
|
+
onChange: () => setCurrentTime(Date.now())
|
|
1960
|
+
}), [plugins, experiences, baseline, profile]);
|
|
1961
|
+
useEffect(() => {
|
|
1962
|
+
addListeners();
|
|
1963
|
+
return () => {
|
|
1964
|
+
removeListeners();
|
|
1965
|
+
};
|
|
1966
|
+
}, [addListeners, removeListeners]);
|
|
1967
|
+
return middleware;
|
|
1968
|
+
};
|
|
1969
|
+
|
|
1941
1970
|
const useExperience = ({
|
|
1942
1971
|
baseline,
|
|
1943
1972
|
experiences
|
|
@@ -1951,6 +1980,31 @@ const useExperience = ({
|
|
|
1951
1980
|
status,
|
|
1952
1981
|
profile
|
|
1953
1982
|
} = profileState;
|
|
1983
|
+
const experienceSelectionMiddleware = useExperienceSelectionMiddleware({
|
|
1984
|
+
experiences,
|
|
1985
|
+
baseline,
|
|
1986
|
+
profile
|
|
1987
|
+
});
|
|
1988
|
+
const overrideResult = _a => {
|
|
1989
|
+
var {
|
|
1990
|
+
experience: originalExperience,
|
|
1991
|
+
variant: originalVariant
|
|
1992
|
+
} = _a,
|
|
1993
|
+
other = __rest(_a, ["experience", "variant"]);
|
|
1994
|
+
const {
|
|
1995
|
+
experience,
|
|
1996
|
+
variant
|
|
1997
|
+
} = experienceSelectionMiddleware({
|
|
1998
|
+
experience: originalExperience,
|
|
1999
|
+
variant: originalVariant
|
|
2000
|
+
});
|
|
2001
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2002
|
+
// @ts-ignore
|
|
2003
|
+
return Object.assign(Object.assign({}, other), {
|
|
2004
|
+
experience,
|
|
2005
|
+
variant
|
|
2006
|
+
});
|
|
2007
|
+
};
|
|
1954
2008
|
const baseReturn = Object.assign(Object.assign({}, profileState), {
|
|
1955
2009
|
hasVariants,
|
|
1956
2010
|
baseline
|
|
@@ -1965,17 +2019,17 @@ const useExperience = ({
|
|
|
1965
2019
|
if (status === 'loading') {
|
|
1966
2020
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1967
2021
|
// @ts-ignore
|
|
1968
|
-
return emptyReturn;
|
|
2022
|
+
return overrideResult(emptyReturn);
|
|
1969
2023
|
}
|
|
1970
2024
|
if (status === 'error') {
|
|
1971
2025
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1972
2026
|
// @ts-ignore
|
|
1973
|
-
return emptyReturn;
|
|
2027
|
+
return overrideResult(emptyReturn);
|
|
1974
2028
|
}
|
|
1975
2029
|
if (!profile) {
|
|
1976
2030
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1977
2031
|
// @ts-ignore
|
|
1978
|
-
return emptyReturn;
|
|
2032
|
+
return overrideResult(emptyReturn);
|
|
1979
2033
|
}
|
|
1980
2034
|
const activeExperiments = selectActiveExperiments(experiments, profile);
|
|
1981
2035
|
const experience = selectExperience({
|
|
@@ -1986,9 +2040,9 @@ const useExperience = ({
|
|
|
1986
2040
|
if (!experience) {
|
|
1987
2041
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1988
2042
|
// @ts-ignore
|
|
1989
|
-
return Object.assign(Object.assign({}, emptyReturn), {
|
|
2043
|
+
return overrideResult(Object.assign(Object.assign({}, emptyReturn), {
|
|
1990
2044
|
profile
|
|
1991
|
-
});
|
|
2045
|
+
}));
|
|
1992
2046
|
}
|
|
1993
2047
|
const audience = experience.audience;
|
|
1994
2048
|
const variant = selectExperienceVariant({
|
|
@@ -1997,7 +2051,7 @@ const useExperience = ({
|
|
|
1997
2051
|
profile
|
|
1998
2052
|
});
|
|
1999
2053
|
if (!variant) {
|
|
2000
|
-
return Object.assign(Object.assign({}, baseReturn), {
|
|
2054
|
+
return overrideResult(Object.assign(Object.assign({}, baseReturn), {
|
|
2001
2055
|
status: 'success',
|
|
2002
2056
|
loading: false,
|
|
2003
2057
|
error: null,
|
|
@@ -2006,9 +2060,9 @@ const useExperience = ({
|
|
|
2006
2060
|
audience: audience ? audience : null,
|
|
2007
2061
|
profile,
|
|
2008
2062
|
isPersonalized: false
|
|
2009
|
-
});
|
|
2063
|
+
}));
|
|
2010
2064
|
}
|
|
2011
|
-
return Object.assign(Object.assign({}, baseReturn), {
|
|
2065
|
+
return overrideResult(Object.assign(Object.assign({}, baseReturn), {
|
|
2012
2066
|
status: 'success',
|
|
2013
2067
|
loading: false,
|
|
2014
2068
|
error: null,
|
|
@@ -2017,7 +2071,7 @@ const useExperience = ({
|
|
|
2017
2071
|
audience: audience ? audience : null,
|
|
2018
2072
|
profile,
|
|
2019
2073
|
isPersonalized: true
|
|
2020
|
-
});
|
|
2074
|
+
}));
|
|
2021
2075
|
};
|
|
2022
2076
|
|
|
2023
2077
|
const useJoinExperiment = () => {
|
|
@@ -2025,35 +2079,6 @@ const useJoinExperiment = () => {
|
|
|
2025
2079
|
return context.joinExperiment;
|
|
2026
2080
|
};
|
|
2027
2081
|
|
|
2028
|
-
const useExperienceSelectionMiddleware = ({
|
|
2029
|
-
experiences,
|
|
2030
|
-
baseline,
|
|
2031
|
-
profile
|
|
2032
|
-
}) => {
|
|
2033
|
-
const {
|
|
2034
|
-
plugins
|
|
2035
|
-
} = useNinetailed();
|
|
2036
|
-
const [_, setCurrentTime] = useState(Date.now());
|
|
2037
|
-
const {
|
|
2038
|
-
addListeners,
|
|
2039
|
-
removeListeners,
|
|
2040
|
-
middleware
|
|
2041
|
-
} = useMemo(() => makeExperienceSelectMiddleware({
|
|
2042
|
-
plugins,
|
|
2043
|
-
experiences,
|
|
2044
|
-
baseline,
|
|
2045
|
-
profile,
|
|
2046
|
-
onChange: () => setCurrentTime(Date.now())
|
|
2047
|
-
}), [plugins, experiences, baseline, profile]);
|
|
2048
|
-
useEffect(() => {
|
|
2049
|
-
addListeners();
|
|
2050
|
-
return () => {
|
|
2051
|
-
removeListeners();
|
|
2052
|
-
};
|
|
2053
|
-
}, [addListeners, removeListeners]);
|
|
2054
|
-
return middleware;
|
|
2055
|
-
};
|
|
2056
|
-
|
|
2057
2082
|
const DefaultExperienceLoadingComponent = _a => {
|
|
2058
2083
|
var {
|
|
2059
2084
|
component: Component,
|
|
@@ -2111,8 +2136,8 @@ const Experience = _a => {
|
|
|
2111
2136
|
const {
|
|
2112
2137
|
status,
|
|
2113
2138
|
hasVariants,
|
|
2114
|
-
experience
|
|
2115
|
-
variant
|
|
2139
|
+
experience,
|
|
2140
|
+
variant,
|
|
2116
2141
|
audience,
|
|
2117
2142
|
isPersonalized,
|
|
2118
2143
|
profile
|
|
@@ -2120,18 +2145,6 @@ const Experience = _a => {
|
|
|
2120
2145
|
baseline,
|
|
2121
2146
|
experiences
|
|
2122
2147
|
});
|
|
2123
|
-
const experienceSelectionMiddleware = useExperienceSelectionMiddleware({
|
|
2124
|
-
experiences,
|
|
2125
|
-
baseline,
|
|
2126
|
-
profile
|
|
2127
|
-
});
|
|
2128
|
-
const {
|
|
2129
|
-
experience,
|
|
2130
|
-
variant
|
|
2131
|
-
} = experienceSelectionMiddleware({
|
|
2132
|
-
experience: originalExperience,
|
|
2133
|
-
variant: originalVariant
|
|
2134
|
-
});
|
|
2135
2148
|
const joinExperiment = useJoinExperiment();
|
|
2136
2149
|
useEffect(() => {
|
|
2137
2150
|
if (status === 'success' && experience && profile) {
|
package/package.json
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ninetailed/experience.js-react",
|
|
3
|
-
"version": "4.2.0-beta.
|
|
3
|
+
"version": "4.2.0-beta.7",
|
|
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.
|
|
10
|
+
"@ninetailed/experience.js": "4.2.0-beta.7",
|
|
11
11
|
"react-intersection-observer": "8.34.0",
|
|
12
|
-
"@ninetailed/experience.js-shared": "4.2.0-beta.
|
|
12
|
+
"@ninetailed/experience.js-shared": "4.2.0-beta.7",
|
|
13
13
|
"radash": "10.9.0",
|
|
14
14
|
"analytics": "0.8.1"
|
|
15
15
|
},
|