import { isEqual } from 'lodash-es';
import { useEffect, useRef } from 'react';

import { WebUserEvent } from '@/logging/TrackingEventTypes';
import logWebUserEvent from '@/logging/logWebUserEvent';

export default function useLogOnMount(
  props: WebUserEvent,
  enabled: boolean = true
) {
  const lastProps = useRef<WebUserEvent | null>(null);
  useEffect(() => {
    if (!enabled || isEqual(lastProps.current, props)) return;
    lastProps.current = props;
    logWebUserEvent(props);
  }, [props, enabled]);
}
