fix(auth): enable sync on login/logout + fix data copy + wire page-view tracking
This commit is contained in:
parent
9d50a196bc
commit
1f18c53b76
@ -1,14 +1,23 @@
|
||||
'use client';
|
||||
|
||||
import { useEffect } from 'react';
|
||||
import { usePathname } from 'next/navigation';
|
||||
import { AuthProvider } from '@/lib/auth-context';
|
||||
import { initTelemetry } from '@/lib/telemetry';
|
||||
import { initTelemetry, trackPageView } from '@/lib/telemetry';
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
export function Providers({ children }: { children: ReactNode }) {
|
||||
const pathname = usePathname();
|
||||
|
||||
useEffect(() => {
|
||||
initTelemetry();
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
if (pathname) {
|
||||
trackPageView(pathname);
|
||||
}
|
||||
}, [pathname]);
|
||||
|
||||
return <AuthProvider>{children}</AuthProvider>;
|
||||
}
|
||||
|
||||
@ -349,7 +349,7 @@ export default function SettingsPage() {
|
||||
</button>
|
||||
</div>
|
||||
<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>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@ -10,6 +10,7 @@ import {
|
||||
registerUser,
|
||||
getMe,
|
||||
setAuthToken,
|
||||
setSyncEnabled,
|
||||
isAuthenticated as checkAuth,
|
||||
type AuthUser,
|
||||
} from './platform-sync';
|
||||
@ -56,6 +57,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||
try {
|
||||
const result = await loginUser(email, password);
|
||||
setAuthToken(result.accessToken);
|
||||
setSyncEnabled(true);
|
||||
setUser(result.user);
|
||||
return true;
|
||||
} catch (err) {
|
||||
@ -70,6 +72,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||
try {
|
||||
const result = await registerUser(email, password, displayName);
|
||||
setAuthToken(result.accessToken);
|
||||
setSyncEnabled(true);
|
||||
setUser(result.user);
|
||||
return true;
|
||||
} catch (err) {
|
||||
@ -82,6 +85,7 @@ export function AuthProvider({ children }: { children: ReactNode }) {
|
||||
|
||||
const logout = useCallback(() => {
|
||||
setAuthToken(null);
|
||||
setSyncEnabled(false);
|
||||
setUser(null);
|
||||
}, []);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user