-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
67 lines (63 loc) · 1.45 KB
/
Copy pathApp.js
File metadata and controls
67 lines (63 loc) · 1.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
// @ts-check
import React from "react";
import {
OptimizelyProvider,
createInstance,
createPollingProjectConfigManager,
createBatchEventProcessor,
useDecide,
createLogger,
DEBUG,
} from "@optimizely/react-sdk";
import { StyleSheet, Text, View } from "react-native";
const optimizely = createInstance({
projectConfigManager: createPollingProjectConfigManager({
sdkKey: process.env.EXPO_PUBLIC_OPTIMIZELY_SDK_KEY,
autoUpdate: true,
}),
eventProcessor: createBatchEventProcessor({
batchSize: 10,
flushInterval: 1000,
}),
logger: createLogger({
// logLevel: DEBUG,
level: DEBUG
}),
});
const Decision = () => {
// You have to provide your flag key instead of "product_sort"
const { decision, isLoading, error } = useDecide("product_sort");
console.log(decision);
if (isLoading) {
return <Text>Loading...</Text>;
}
if (error) {
return <Text>Error: {String(error)}</Text>;
}
return (
<Text>Decision: Flag {decision.enabled ? "Enabled" : "Disabled"}</Text>
);
};
export default function App() {
return (
<OptimizelyProvider
client={optimizely}
user={{
id: "user123",
}}
>
<View style={styles.container}>
<Text>Hello World</Text>
<Decision />
</View>
</OptimizelyProvider>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
});