'use client'

// draft → reviewed toggle (KAR-848: "Wann von draft zum nächsten Status?").
// tdd-guard:skip — thin action trigger.

import { useState, useTransition } from 'react'
import { useRouter } from 'next/navigation'
import { CheckCircle2, Undo2 } from 'lucide-react'
import { Button } from '@/components/ui/button'
import { markComparisonReviewed } from '@/app/qaf-differences/comparison-meta-actions'

export default function QafReviewToggle({ comparisonId, status }: { comparisonId: string; status: string | null }) {
  const router = useRouter()
  const [pending, startTransition] = useTransition()
  const [error, setError] = useState<string | null>(null)
  const reviewed = status === 'reviewed'

  function toggle() {
    setError(null)
    startTransition(async () => {
      const res = await markComparisonReviewed(comparisonId, !reviewed)
      if (res.ok) {
        router.refresh()
      } else {
        setError(res.error)
      }
    })
  }

  return (
    <span className="inline-flex items-center gap-2">
      <Button onClick={toggle} disabled={pending} variant="outline" size="sm">
        {reviewed ? <Undo2 size={14} /> : <CheckCircle2 size={14} />}
        {pending ? '…' : reviewed ? 'Zurück auf Entwurf' : 'Als geprüft markieren'}
      </Button>
      {error && <span className="text-xs text-destructive">{error}</span>}
    </span>
  )
}
