fix(auth): enable sync on login/logout + fix data copy + wire page-view tracking

This commit is contained in:
saravanakumardb1 2026-02-28 02:33:19 -08:00
parent 9d50a196bc
commit 1f18c53b76
3 changed files with 15 additions and 2 deletions

View File

@ -1,14 +1,23 @@
'use client'; 'use client';
import { useEffect } from 'react'; import { useEffect } from 'react';
import { usePathname } from 'next/navigation';
import { AuthProvider } from '@/lib/auth-context'; import { AuthProvider } from '@/lib/auth-context';
import { initTelemetry } from '@/lib/telemetry'; import { initTelemetry, trackPageView } from '@/lib/telemetry';
import type { ReactNode } from 'react'; import type { ReactNode } from 'react';
export function Providers({ children }: { children: ReactNode }) { export function Providers({ children }: { children: ReactNode }) {
const pathname = usePathname();
useEffect(() => { useEffect(() => {
initTelemetry(); initTelemetry();
}, []); }, []);
useEffect(() => {
if (pathname) {
trackPageView(pathname);
}
}, [pathname]);
return <AuthProvider>{children}</AuthProvider>; return <AuthProvider>{children}</AuthProvider>;
} }

View File

@ -349,7 +349,7 @@ export default function SettingsPage() {
</button> </button>
</div> </div>
<p className="text-xs mt-3" style={{ color: 'var(--cm-text-tertiary)' }}> <p className="text-xs mt-3" style={{ color: 'var(--cm-text-tertiary)' }}>
All data is stored locally in your browser. No data is sent to any server. Timer data is stored locally in your browser. Anonymous usage analytics are sent to improve the app.
See our <Link href="/privacy" style={{ color: 'var(--cm-accent)' }}>Privacy Policy</Link>. See our <Link href="/privacy" style={{ color: 'var(--cm-accent)' }}>Privacy Policy</Link>.
</p> </p>
</div> </div>

View File

@ -10,6 +10,7 @@ import {
registerUser, registerUser,
getMe, getMe,
setAuthToken, setAuthToken,
setSyncEnabled,
isAuthenticated as checkAuth, isAuthenticated as checkAuth,
type AuthUser, type AuthUser,
} from './platform-sync'; } from './platform-sync';
@ -56,6 +57,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
try { try {
const result = await loginUser(email, password); const result = await loginUser(email, password);
setAuthToken(result.accessToken); setAuthToken(result.accessToken);
setSyncEnabled(true);
setUser(result.user); setUser(result.user);
return true; return true;
} catch (err) { } catch (err) {
@ -70,6 +72,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
try { try {
const result = await registerUser(email, password, displayName); const result = await registerUser(email, password, displayName);
setAuthToken(result.accessToken); setAuthToken(result.accessToken);
setSyncEnabled(true);
setUser(result.user); setUser(result.user);
return true; return true;
} catch (err) { } catch (err) {
@ -82,6 +85,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
const logout = useCallback(() => { const logout = useCallback(() => {
setAuthToken(null); setAuthToken(null);
setSyncEnabled(false);
setUser(null); setUser(null);
}, []); }, []);