import { Button } from '@/components/ui/button';
import {
    Dialog,
    DialogContent,
    DialogDescription,
    DialogFooter,
    DialogHeader,
    DialogTitle,
} from '@/components/ui/dialog';
import { Input } from '@/components/ui/input';
import { useState } from 'react';

export default function ExtendTrialDialog({
    open,
    onOpenChange,
    tenantName,
    busy,
    onSubmit,
}: {
    open: boolean;
    onOpenChange: (open: boolean) => void;
    tenantName: string;
    busy: boolean;
    onSubmit: (days: number) => void;
}) {
    const [trialDays, setTrialDays] = useState('14');

    return (
        <Dialog open={open} onOpenChange={onOpenChange}>
            <DialogContent className="max-w-sm">
                <DialogHeader>
                    <DialogTitle>Extend trial</DialogTitle>
                    <DialogDescription>
                        Add days to {tenantName}'s trial. Counted from the
                        current trial end (or today if it already ended).
                    </DialogDescription>
                </DialogHeader>
                <Input
                    type="number"
                    min={1}
                    max={90}
                    value={trialDays}
                    onChange={(e) => setTrialDays(e.target.value)}
                />
                <DialogFooter>
                    <Button
                        variant="outline"
                        size="sm"
                        onClick={() => onOpenChange(false)}
                    >
                        Cancel
                    </Button>
                    <Button
                        size="sm"
                        disabled={busy || !trialDays}
                        onClick={() => onSubmit(Number(trialDays))}
                    >
                        Extend
                    </Button>
                </DialogFooter>
            </DialogContent>
        </Dialog>
    );
}
