import { IconButton } from '@/components/common/IconButton';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
import type { MailboxAccountListItem } from '@/features/mailboxes/types';
import { tableRowIconButtonClass } from '@/lib/icon-button-classes';
import { useI18n } from '@/hooks/use-i18n';

type MailboxRowActionsProps = {
    mailbox: MailboxAccountListItem;
    onTestConnection: (mailbox: MailboxAccountListItem) => void;
    onSync: (mailbox: MailboxAccountListItem) => void;
};

export function MailboxRowActions({ mailbox, onTestConnection, onSync }: MailboxRowActionsProps) {
    const { t } = useI18n();

    return (
        <div className="flex items-center justify-end">
            <TooltipProvider delayDuration={150}>
                <Tooltip>
                    <TooltipTrigger asChild>
                        <IconButton
                            type="button"
                            variant="text"
                            color="ghost"
                            size="sm"
                            className={tableRowIconButtonClass}
                            onClick={() => onTestConnection(mailbox)}
                            icon="solar:test-tube-minimalistic-bold-duotone"
                            aria-label={t('settings.mailboxes.row_actions.test_aria')}
                        />
                    </TooltipTrigger>
                    <TooltipContent>{t('settings.mailboxes.row_actions.test_tooltip')}</TooltipContent>
                </Tooltip>
            </TooltipProvider>

            <TooltipProvider delayDuration={150}>
                <Tooltip>
                    <TooltipTrigger asChild>
                        <IconButton
                            type="button"
                            variant="text"
                            color="ghost"
                            size="sm"
                            className={tableRowIconButtonClass}
                            onClick={() => onSync(mailbox)}
                            disabled={!mailbox.active}
                            icon="solar:refresh-square-bold-duotone"
                            aria-label={t('settings.mailboxes.row_actions.sync_aria')}
                        />
                    </TooltipTrigger>
                    <TooltipContent>{t('settings.mailboxes.row_actions.sync_tooltip')}</TooltipContent>
                </Tooltip>
            </TooltipProvider>
        </div>
    );
}
