@schematichq/schematic-react 0.2.0-rc.9 → 1.0.0

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/README.md ADDED
@@ -0,0 +1,86 @@
1
+ # schematic-react
2
+
3
+ `schematic-react` is a client-side React library for [Schematic](https://schematichq.com) which provides hooks to track events, check flags, and more. `schematic-react` provides the same capabilities as [schematic-js](https://github.com/schematichq/schematic-js/tree/main/js), for React apps.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm install @schematichq/schematic-react
9
+ # or
10
+ yarn add @schematichq/schematic-react
11
+ # or
12
+ pnpm add @schematichq/schematic-react
13
+ ```
14
+
15
+ ## Usage
16
+
17
+ You can use the `SchematicProvider` to wrap your application and provide the Schematic instance to all components:
18
+
19
+ ```tsx
20
+ import { SchematicProvider } from "@schematichq/schematic-react";
21
+
22
+ ReactDOM.render(
23
+ <SchematicProvider publishableKey="your-publishable-key">
24
+ <App />
25
+ </SchematicProvider>,
26
+ document.getElementById("root"),
27
+ );
28
+ ```
29
+
30
+ To set the user context for events and flag checks, you can use the `identify` function provided by the `useSchematicEvents` hook:
31
+
32
+ ```tsx
33
+ import { useSchematicEvents } from "@schematichq/schematic-react";
34
+
35
+ const MyComponent = () => {
36
+ const { identify } = useSchematicEvents();
37
+
38
+ useEffect(() => {
39
+ identify({
40
+ keys: { id: "my-user-id" },
41
+ company: {
42
+ keys: { id: "my-company-id" },
43
+ traits: { location: "Atlanta, GA" },
44
+ },
45
+ });
46
+ }, []);
47
+
48
+ return <div>My Component</div>;
49
+ };
50
+ ```
51
+
52
+ Once you've set the context with `identify`, you can track events:
53
+
54
+ ```tsx
55
+ import { useSchematicEvents } from "@schematichq/schematic-react";
56
+
57
+ const MyComponent = () => {
58
+ const { track } = useSchematicEvents();
59
+
60
+ useEffect(() => {
61
+ track({ event: "query" });
62
+ }, []);
63
+
64
+ return <div>My Component</div>;
65
+ };
66
+ ```
67
+
68
+ To check a flag, you can use the `useSchematicFlags` hook:
69
+
70
+ ```tsx
71
+ import { useSchematicFlag } from "@schematichq/schematic-react";
72
+
73
+ const MyComponent = () => {
74
+ const isFeatureEnabled = useSchematicFlag("my-flag-key");
75
+
76
+ return isFeatureEnabled ? <Feature /> : <Fallback />;
77
+ };
78
+ ```
79
+
80
+ ## License
81
+
82
+ MIT
83
+
84
+ ## Support
85
+
86
+ Need help? Please open a GitHub issue or reach out to [support@schematichq.com](mailto:support@schematichq.com) and we'll be happy to assist.