import { Link } from '@inertiajs/react';
import { Ban, CheckCircle2, Pencil } from 'lucide-react';
import { IconButton } from '@/components/common/IconButton';
import { tableRowIconButtonMenuClass } from '@/lib/icon-button-classes';
import {
    DropdownMenu,
    DropdownMenuContent,
    DropdownMenuItem,
    DropdownMenuSeparator,
    DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu';
import { useI18n } from '@/hooks/use-i18n';

type UserRowActionsProps = {
    editHref: string;
    isActive: boolean;
    onToggleStatus: () => void;
};

export function UserRowActions({ editHref, isActive, onToggleStatus }: UserRowActionsProps) {
    const { t } = useI18n();

    return (
        <DropdownMenu>
            <DropdownMenuTrigger asChild>
                <IconButton
                    type="button"
                    variant="text"
                    color="ghost"
                    size="sm"
                    className={tableRowIconButtonMenuClass}
                    icon="solar:menu-dots-bold-duotone"
                />
            </DropdownMenuTrigger>
            <DropdownMenuContent align="end" className="w-56">
                <DropdownMenuItem asChild>
                    <Link href={editHref} className="flex cursor-default items-center gap-2">
                        <Pencil className="mr-2 h-4 w-4" />
                        {t('users.admin_index.row_actions.edit')}
                    </Link>
                </DropdownMenuItem>
                <DropdownMenuSeparator />
                {isActive ? (
                    <DropdownMenuItem variant="destructive" onClick={onToggleStatus}>
                        <Ban className="mr-2 h-4 w-4" />
                        {t('users.admin_index.row_actions.deactivate')}
                    </DropdownMenuItem>
                ) : (
                    <DropdownMenuItem
                        onClick={onToggleStatus}
                        className="text-success focus:bg-success/12 focus:text-success dark:focus:bg-success/20 [&_svg]:!text-success"
                    >
                        <CheckCircle2 className="mr-2 h-4 w-4" />
                        {t('users.admin_index.row_actions.reactivate')}
                    </DropdownMenuItem>
                )}
            </DropdownMenuContent>
        </DropdownMenu>
    );
}
