import {FilePreviewDialog} from '@common/uploads/preview/file-preview-dialog';
import {DriveEntry} from '../drive-entry';
import {createElement, Fragment, useState} from 'react';
import {useShareAction} from '../../entry-actions/use-entry-actions';
import {Button} from '@common/ui/buttons/button';
import {Trans} from '@common/i18n/trans';
import {IconButton} from '@common/ui/buttons/icon-button';
import {useEntries} from '../queries/use-entries';
interface EntryPreviewDialogProps {
selectedEntry: DriveEntry;
}
export function EntryPreviewDialog({selectedEntry}: EntryPreviewDialogProps) {
const files = useEntries().filter(entry => entry.type !== 'folder');
const defaultActiveIndex = files.findIndex(
file => file.id === selectedEntry?.id
);
const [activeIndex, setActiveIndex] = useState(defaultActiveIndex);
return (
}
activeIndex={activeIndex}
onActiveIndexChange={setActiveIndex}
entries={files}
/>
);
}
interface DriveActionsProps {
activeIndex: number;
entries: DriveEntry[];
}
function DriveActions({activeIndex, entries}: DriveActionsProps) {
const selectedEntry = entries[activeIndex];
const share = useShareAction([selectedEntry]);
if (!selectedEntry || !share) return null;
return (
{
share.execute();
}}
>
{createElement(share.icon)}
);
}