A React Clarity integration powered by hooks.
- Hooks
- Written in TypeScript
- Documented, self explaining methods
# npm
npm install use-clarity
# yarn
yarn add use-clarityimport * as React from 'react';
import { ClarityProvider, useClarity } from 'use-clarity';
const CLARITY_PROJECT_ID = 'your-clarity-project-id';
const App = () => (
<ClarityProvider clarityId={CLARITY_PROJECT_ID}>
<HomePage />
</ClarityProvider>
);
const HomePage = () => {
const { userId } = useUserContext();
const { identify } = useClarity();
React.useEffect(() => {
identify(userId);
}, [userId]);
return <div>Hi I'm a homepage</div>;
};This library is a React abstraction of Clarity. use-clarity tries to keep as close as a one-on-one abstraction of the "vanilla" Clarity functionality.
ClarityProvider is used to initialize the window.clarity instance.
Place the ClarityProvider as high as possible in your application. This will make sure you can call useClarity anywhere.
| name | type | description | required | default |
|---|---|---|---|---|
| clarityId | string | clarity project id | true |
const App = () => {
return (
<ClarityProvider clarityId={CLARITY_PROJECT_ID}>
<p>Hi there, I am a child of the ClarityProvider</p>
</ClarityProvider>
);
};Used to retrieve all methods bundled with Clarity. These are based on the official Clarity API docs and Clarity Identify API docs. We provide full access to the internals, with additional helper methods.
Make sure ClarityProvider is wrapped around your component when calling useClarity().
Remark - You can't use useClarity() in the same component where ClarityProvider is initialized.
| name | type | description |
|---|---|---|
| currentSessionUrl | string? | the url for the current session |
| clarityUserId | string? | the current clarity id of the user |
| currentSessionId | string? | the current session id |
| upgrade | (key: string) => void | prioritize specific types of sessions for recording |
| consent | () => void | set consent |
| event | (name: string, value: string) => void | send custom events |
| set | (variable: string, value: string| string[]) => void; | add custom tags |
| identify | (userId: string, sessionId?: string, pageId?: string, userHint?: string) => void | customise the ids |
| metadata | (callback: Data.MetadataCallback, wait?: boolean) => void | internal |
| signal | (callback: Data.SignalCallback) => void | internal |
| start | (config?: Core.Config) => void | internal |
| stop | () => void | internal |
| pause | () => void | internal |
| resume | () => void | internal |
- Add tests
- Add more examples