import { syncFedcmSession } from '@/lib/api'; type FedcmLoginNavigator = Navigator & { login?: { setStatus: (status: 'logged-in' | 'logged-out') => void; }; }; type FedcmIdentityProviderGlobal = { close?: () => void; }; declare global { interface Window { IdentityProvider?: FedcmIdentityProviderGlobal; } } /** Завершение входа в popup FedCM: cookie + Set-Login для браузера. */ export async function finalizeFedcmLogin(accessToken: string) { if (typeof window === 'undefined' || !accessToken) { return; } await syncFedcmSession(accessToken); const loginApi = (navigator as FedcmLoginNavigator).login; if (loginApi?.setStatus) { try { loginApi.setStatus('logged-in'); } catch { // FedCM API может быть недоступен вне popup-контекста } } if (window.IdentityProvider?.close) { try { window.IdentityProvider.close(); } catch { // закрытие необязательно — браузер сам закроет popup после setStatus } } } export function shouldFinalizeFedcmLogin(pathname: string) { return pathname.startsWith('/auth/login'); }