A React Clarity integration powered by hooks.
- Hooks
- Written in TypeScript
- Documented, self explaining methods
# npm
npm install use-clarity
# yarn
yarn add use-clarity
import * 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