'use client' import { useEffect, useRef, useState } from 'react' import { ChevronRight, Landmark, Loader2, Search } from 'lucide-react' import { Input } from '@/components/ui/input' import { cn } from '@/lib/utils' import { matchBankByName } from '../lib/bank-match' export interface Bank { name: string country: string logo?: string bic?: string } const POPULAR_SWEDISH_BANKS = [ 'Swedbank', 'SEB', 'Nordea', 'Handelsbanken', 'Danske Bank', ] interface BankSelectorProps { onConnect: (bank: Bank) => void onPsuTypeDetected?: (psuType: 'personal' | 'business') => void isConnecting?: boolean connectingBankName?: string | null className?: string } /** * Eyebrow above a list section: same micro-label and same px-1 inset as the * SettingsGroup eyebrow, so the two sit on one left edge. */ function SectionLabel({ children }: { children: React.ReactNode }) { return (
{error}
)} {/* Bank list */} {!isLoading && !error && ( <> {filteredBanks.length === 0 ? ({searchQuery ? `Inga banker matchar "${searchQuery}"` : 'Inga banker tillgängliga'}
{searchQuery && (Försök med ett annat sökord
)}Ansluter till {connectingBankName}...
)}