import { IconButton } from '@/components/common/IconButton';
import { Icon } from '@/components/ui/icon';
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';
import type { DocumentDetail } from '@/features/documents/types';
import { useI18n } from '@/hooks/use-i18n';
import { cn } from '@/lib/utils';

type DocumentFileActionsProps = {
    file: DocumentDetail['file'];
    size?: 'sm' | 'default';
    className?: string;
};

export function DocumentFileActions({ file, size = 'sm', className }: DocumentFileActionsProps) {
    const { t } = useI18n();
    const downloadUrl = file.download_url ?? `${file.public_url}?download=1`;
    const iconSize = size === 'default' ? 'md' : 'sm';

    return (
        <TooltipProvider delayDuration={150}>
            <div className={cn('flex flex-wrap items-center gap-1', className)}>
                <Tooltip>
                    <TooltipTrigger asChild>
                        <IconButton
                            asChild
                            variant="outlined"
                            color="default"
                            size={iconSize}
                            aria-label={t('documents.admin_show.file_actions.view')}
                        >
                            <a href={file.public_url} target="_blank" rel="noreferrer">
                                <Icon icon="solar:square-arrow-right-up-bold-duotone" />
                            </a>
                        </IconButton>
                    </TooltipTrigger>
                    <TooltipContent>{t('documents.admin_show.file_actions.view')}</TooltipContent>
                </Tooltip>

                <Tooltip>
                    <TooltipTrigger asChild>
                        <IconButton
                            asChild
                            variant="outlined"
                            color="default"
                            size={iconSize}
                            aria-label={t('documents.admin_show.file_actions.download')}
                        >
                            <a href={downloadUrl} download={file.original_filename}>
                                <Icon icon="solar:download-bold-duotone" />
                            </a>
                        </IconButton>
                    </TooltipTrigger>
                    <TooltipContent>{t('documents.admin_show.file_actions.download')}</TooltipContent>
                </Tooltip>
            </div>
        </TooltipProvider>
    );
}
