thiagoarrais/grafana-matomo-tracking-panel

View on GitHub
src/MatomoPanel.tsx

Summary

Maintainability
A
0 mins
Test Coverage
F
0%
import React, { useEffect } from 'react';
import { PanelProps } from '@grafana/data';
import { MatomoOptions } from 'types';
import { MatomoProvider, createInstance, useMatomo } from '@jonkoops/matomo-tracker-react';

interface Props extends PanelProps<MatomoOptions> {}

const PanelImpl = (props: Props) => {
  const { trackPageView } = useMatomo();

  useEffect(() => {
    trackPageView({});
  });

  return <div />;
};

const MatomoPanel = (props: Props) => {
  const { options } = props;

  const matomoInstance = createInstance(options);

  return (
    <MatomoProvider value={matomoInstance}>
      <PanelImpl {...props} />
    </MatomoProvider>
  );
};

export { MatomoPanel };