"use client"; import { ProviderButton } from './provider-button'; export interface SSOConfigStatus { provider: string; enabled: boolean; clientId?: string; } interface AuthProvidersListProps { /** List of enabled SSO providers */ enabledProviders: SSOConfigStatus[]; /** Callback when provider is clicked - implement your auth logic here */ onProviderClick: (provider: string) => Promise; /** Loading state for providers */ loading?: boolean; /** Show divider above providers list */ showDivider?: boolean; /** Custom divider text */ dividerText?: string; /** Layout orientation */ orientation?: 'vertical' | 'horizontal'; } export function AuthProvidersList({ enabledProviders, onProviderClick, loading = false, showDivider = true, dividerText = "or", orientation = "vertical" }: AuthProvidersListProps) { if (!enabledProviders.length) { return null; } const handleProviderClick = async (provider: string) => { try { await onProviderClick(provider); } catch (error) { console.error(`❌ Auth Providers List: Error with ${provider}:`, error); } }; return (
{showDivider && (
{dividerText}
)}
{enabledProviders .filter(provider => provider.enabled) .map((provider) => ( handleProviderClick(provider.provider)} disabled={loading} loading={loading} /> ))}
); }