@usermaven/react 1.2.5
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 +93 -0
- package/lib/UsermavenContext.d.ts +4 -0
- package/lib/UsermavenContext.js +5 -0
- package/lib/UsermavenProvider.d.ts +8 -0
- package/lib/UsermavenProvider.js +9 -0
- package/lib/client.d.ts +3 -0
- package/lib/client.js +7 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.es.js +2404 -0
- package/lib/index.js +13 -0
- package/lib/usePageView.d.ts +7 -0
- package/lib/usePageView.js +17 -0
- package/lib/useUsermaven.d.ts +5 -0
- package/lib/useUsermaven.js +25 -0
- package/package.json +46 -0
package/README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Official Usermaven SDK for React
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## General
|
|
5
|
+
|
|
6
|
+
This package is a wrapper around `@usermaven/sdk-js`, with added functionality related to React.
|
|
7
|
+
|
|
8
|
+
## Installation
|
|
9
|
+
|
|
10
|
+
To use Usermaven SDK, install npm package
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npm install @usermaven/react
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Import and configure Usermaven SDK Provider
|
|
17
|
+
|
|
18
|
+
```typescript jsx
|
|
19
|
+
//...
|
|
20
|
+
import { createClient, UsermavenProvider } from "@usermaven/react";
|
|
21
|
+
|
|
22
|
+
// initialize Usermaven client
|
|
23
|
+
const usermavenClient = createClient({
|
|
24
|
+
tracking_host: "__USERMAVEN_HOST__",
|
|
25
|
+
key: "__API_KET__",
|
|
26
|
+
// See Usermaven SDK parameters section for more options
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// wrap our app with Usermaven provider
|
|
30
|
+
ReactDOM.render(
|
|
31
|
+
<React.StrictMode>
|
|
32
|
+
<UsermavenProvider client={usermavenClient}>
|
|
33
|
+
<App />
|
|
34
|
+
</UsermavenProvider>
|
|
35
|
+
</React.StrictMode>,
|
|
36
|
+
document.getElementById('root')
|
|
37
|
+
);
|
|
38
|
+
```
|
|
39
|
+
See [parameters list](https://usermaven.com/docs/sending-data/js-sdk/parameters-reference) for `createClient()` call.
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
```typescript jsx
|
|
44
|
+
import { useUsermaven } from "@usermaven/react";
|
|
45
|
+
|
|
46
|
+
const App = () => {
|
|
47
|
+
const {id, track, trackPageView} = useUsermaven(); // import methods from useUsermaven hook
|
|
48
|
+
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
id({id: '__USER_ID__', email: '__USER_EMAIL__'}); // identify current user for all track events
|
|
51
|
+
trackPageView() // send page_view event
|
|
52
|
+
}, [])
|
|
53
|
+
|
|
54
|
+
const onClick = (btnName: string) => {
|
|
55
|
+
track('btn_click', {btn: btnName}); // send btn_click event with button name payload on click
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return (
|
|
59
|
+
<button onClick="() => onClick('test_btn')">Test button</button>
|
|
60
|
+
)
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
\
|
|
64
|
+
To enable automatic pageview tracking, add `usePageView()` hook. This hook will send pageview each time
|
|
65
|
+
user loads a new page (including internal SPA pages). This hook relies on [React Router](https://reactrouter.com/) and
|
|
66
|
+
requires `react-router` (>=5.x) package to be present
|
|
67
|
+
```typescript jsx
|
|
68
|
+
const App = () => {
|
|
69
|
+
usePageView() //this hook will send pageview track event on router change
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
<Routes>
|
|
73
|
+
<Route path="/" element={<Main />} />
|
|
74
|
+
<Route path="page" element={<Page />} />
|
|
75
|
+
</Routes>
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
\
|
|
80
|
+
If you need to pre-configure usermaven event - for example, identify a user, it's possible to do via `before` callback:
|
|
81
|
+
```typescript
|
|
82
|
+
usePageView({before: (usermaven) => usermaven.id({id: '__USER_ID__', email: '__USER_EMAIL__'})})
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Hooks
|
|
86
|
+
|
|
87
|
+
### useUsermaven
|
|
88
|
+
|
|
89
|
+
Returns object with `id`, `track`, `trackPageView`, `rawTrack`, `set`, `unset` and `interceptAnalytics` [methods of Usermaven SDK](https://usermaven.com/docs/sending-data/js-sdk/methods-reference).
|
|
90
|
+
|
|
91
|
+
### usePageView
|
|
92
|
+
|
|
93
|
+
Can be used only with react-router. Sends `pageview` event on every route change.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { UsermavenClient } from "@usermaven/sdk-js";
|
|
3
|
+
import { PropsWithChildren } from "react";
|
|
4
|
+
export interface UsermavenProviderProps {
|
|
5
|
+
client: UsermavenClient;
|
|
6
|
+
}
|
|
7
|
+
declare const UsermavenProvider: React.FC<PropsWithChildren<UsermavenProviderProps>>;
|
|
8
|
+
export default UsermavenProvider;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const UsermavenContext_1 = require("./UsermavenContext");
|
|
5
|
+
const UsermavenProvider = function ({ children, client }) {
|
|
6
|
+
const Context = UsermavenContext_1.default;
|
|
7
|
+
return React.createElement(Context.Provider, { value: client }, children);
|
|
8
|
+
};
|
|
9
|
+
exports.default = UsermavenProvider;
|
package/lib/client.d.ts
ADDED
package/lib/client.js
ADDED
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { default as UsermavenContext } from './UsermavenContext';
|
|
2
|
+
export { default as UsermavenProvider } from './UsermavenProvider';
|
|
3
|
+
export { default as createClient } from './client';
|
|
4
|
+
export { default as useUsermaven } from './useUsermaven';
|
|
5
|
+
export { default as usePageView } from './usePageView';
|