Files
goodgo-platform/apps/web/components/providers/auth-provider.tsx
Ho Ngoc Hai 0b29fac35e feat(notifications): add multi-channel notification module with Email, FCM, templates, and event listeners
- Domain: NotificationLog/NotificationPreference entities, repositories, channel value object
- Infrastructure: EmailService (nodemailer/SMTP), FcmService (firebase-admin), TemplateService (Handlebars)
- Application: SendNotification CQRS command, UserRegistered + AgentVerified event listeners
- Presentation: NotificationsController with history, preferences, and templates endpoints
- Prisma: NotificationLog and NotificationPreference models with proper indexes
- Templates: Vietnamese notification templates for user.registered, agent.verified, listing.approved, inquiry.received, password.reset

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-08 01:42:17 +07:00

28 lines
676 B
TypeScript

'use client';
import { useEffect } from 'react';
import { useAuthStore } from '@/lib/auth-store';
function setAuthCookie(authenticated: boolean) {
if (authenticated) {
document.cookie = 'goodgo_authenticated=1; path=/; max-age=604800; SameSite=Lax';
} else {
document.cookie = 'goodgo_authenticated=; path=/; max-age=0';
}
}
export function AuthProvider({ children }: { children: React.ReactNode }) {
const initialize = useAuthStore((s) => s.initialize);
const tokens = useAuthStore((s) => s.tokens);
useEffect(() => {
initialize();
}, [initialize]);
useEffect(() => {
setAuthCookie(!!tokens);
}, [tokens]);
return <>{children}</>;
}