import React, {createElement, ReactElement} from 'react';
import {
Menu,
MenuItem,
MenuTrigger,
} from '@common/ui/navigation/menu/menu-trigger';
import {Trans} from '@common/i18n/trans';
import {DriveEntry} from '../files/drive-entry';
import {useEntryActions} from './use-entry-actions';
import {EntryAction} from './entry-action';
import {DrivePage, RootFolderPage, TrashPage} from '../drive-page/drive-page';
import {useDrivePageActions} from './use-drive-page-actions';
interface Props {
children: ReactElement;
entries?: DriveEntry[];
page?: DrivePage;
}
export function EntryActionMenuTrigger({children, entries, page}: Props) {
if (page?.id === RootFolderPage.id) {
return {children};
}
if (page === TrashPage) {
return {children};
}
if (page?.folder) {
return {children};
}
if (entries?.length) {
return {children};
}
return null;
}
interface EntriesContextMenuProps extends Omit {
entries: DriveEntry[];
}
function EntriesMenu({entries, children}: EntriesContextMenuProps) {
const actions = useEntryActions(entries);
return {children};
}
interface PageContextMenuProps extends Omit {
page: DrivePage;
}
function PageMenu({page, children}: PageContextMenuProps) {
const actions = useDrivePageActions(page);
return {children};
}
interface BaseMenuProps {
actions: EntryAction[];
children: ReactElement;
}
function BaseMenu({actions, children}: BaseMenuProps) {
return (
{children}
);
}