'use client'

import i18nConfig from '@/i18nConfig'
import { usePathname, useRouter } from 'next/navigation'
import { useTransition } from 'react'
import { Globe } from 'lucide-react'

export function LanguageSwitcher() {
  const router = useRouter()
  const pathname = usePathname()
  const [isPending, startTransition] = useTransition()

  const currentLocale = pathname.split('/')[1] || i18nConfig.defaultLocale

  const handleChange = (e: React.ChangeEvent<HTMLSelectElement>) => {
    const newLocale = e.target.value
    const segments = pathname.split('/')
    segments[1] = newLocale
    const newPath = segments.join('/')

    startTransition(() => {
      router.push(newPath)
    })
  }

  return (
    <div className="absolute top-4 right-4 z-50 flex items-center gap-2">
      <Globe size={18} className="text-muted-foreground" />
      <select
        className="rounded-md border px-2 py-1 text-sm bg-background text-foreground"
        value={currentLocale}
        onChange={handleChange}
        disabled={isPending}
      >
        {i18nConfig.locales.map(locale => (
          <option key={locale} value={locale}>
            {i18nConfig.languageNames[locale] || locale.toUpperCase()}
          </option>
        ))}
      </select>
    </div>
  )
}
