|
|
import { useEffect } from 'react';
|
|
|
import { useLocation } from 'react-router-dom';
|
|
|
import { useAuth } from './AuthContext';
|
|
|
import { base44 } from '@/api/base44Client';
|
|
|
import { pagesConfig } from '@/pages.config';
|
|
|
|
|
|
export default function NavigationTracker() {
|
|
|
const location = useLocation();
|
|
|
const { isAuthenticated } = useAuth();
|
|
|
const { Pages, mainPage } = pagesConfig;
|
|
|
const mainPageKey = mainPage ?? Object.keys(Pages)[0];
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
const pathname = location.pathname;
|
|
|
let pageName;
|
|
|
|
|
|
if (pathname === '/' || pathname === '') {
|
|
|
pageName = mainPageKey;
|
|
|
} else {
|
|
|
|
|
|
const pathSegment = pathname.replace(/^\//, '').split('/')[0];
|
|
|
|
|
|
|
|
|
const pageKeys = Object.keys(Pages);
|
|
|
const matchedKey = pageKeys.find(
|
|
|
key => key.toLowerCase() === pathSegment.toLowerCase()
|
|
|
);
|
|
|
|
|
|
pageName = matchedKey || null;
|
|
|
}
|
|
|
|
|
|
if (isAuthenticated && pageName) {
|
|
|
base44.appLogs.logUserInApp(pageName).catch(() => {
|
|
|
|
|
|
});
|
|
|
}
|
|
|
}, [location, isAuthenticated, Pages, mainPageKey]);
|
|
|
|
|
|
return null;
|
|
|
} |