'use client';

import { GoogleLogin, CredentialResponse } from '@react-oauth/google';

interface SocialLoginBlockProps {
  /** Libellé « Ou continuer avec », déjà traduit par la page. */
  label: string;
  buttonText: 'signin_with' | 'signup_with';
  onSuccess: (credentialResponse: CredentialResponse) => void;
  onError: () => void;
}

/** Google n'est proposé que si l'identifiant client est présent au build. */
export function isGoogleLoginEnabled(): boolean {
  return Boolean(process.env.NEXT_PUBLIC_GOOGLE_CLIENT_ID);
}

/**
 * Bloc « Ou continuer avec » + boutons de connexion sociale, partagé par les pages
 * de connexion et d'inscription.
 */
export default function SocialLoginBlock({ label, buttonText, onSuccess, onError }: SocialLoginBlockProps) {
  // Sans fournisseur configuré, un « Ou continuer avec » suivi de rien induit en erreur.
  if (!isGoogleLoginEnabled()) {
    return null;
  }

  return (
    <>
      <div className="text-center mb-3">
        <small className="tk-text-muted">{label}</small>
      </div>

      <div className="d-flex flex-column align-items-center gap-2 mb-3">
        <GoogleLogin onSuccess={onSuccess} onError={onError} text={buttonText} width="300" />
      </div>
    </>
  );
}
