import { useStore } from "App/mstore"; import React from 'react'; import { observer } from 'mobx-react-lite'; import { CodeBlock } from 'UI'; import DocLink from 'Shared/DocLink/DocLink'; import ToggleContent from 'Shared/ToggleContent'; const ProfilerDoc = () => { const { integrationsStore, projectsStore } = useStore(); const sites = projectsStore.list; const siteId = integrationsStore.integrations.siteId const projectKey = siteId ? sites.find((site) => site.id === siteId)?.projectKey : sites[0]?.projectKey const usage = `import OpenReplay from '@openreplay/tracker'; import trackerProfiler from '@openreplay/tracker-profiler'; //... const tracker = new OpenReplay({ projectKey: '${projectKey}' }); // .start() returns a promise tracker.start().then(sessionData => ... ).catch(e => ... ) //... export const profiler = tracker.use(trackerProfiler()); //... const fn = profiler('call_name')(() => { //... }, thisArg); // thisArg is optional`; const usageCjs = `import OpenReplay from '@openreplay/tracker/cjs'; import trackerProfiler from '@openreplay/tracker-profiler/cjs'; //... const tracker = new OpenReplay({ projectKey: '${projectKey}' }); //... function SomeFunctionalComponent() { useEffect(() => { // or componentDidMount in case of Class approach // .start() returns a promise tracker.start().then(sessionData => ... ).catch(e => ... ) }, []) //... export const profiler = tracker.use(trackerProfiler()); //... const fn = profiler('call_name')(() => { //... }, thisArg); // thisArg is optional }`; return (
Initialize the tracker and load the plugin into it. Then decorate any function inside your code with the generated function.