mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-26 13:18:51 +01:00
* refactor: support drag/drop files for agents, handle undefined tool_resource edge cases * refactor: consolidate endpoints config logic to dedicated getter * refactor: Enhance agent tools loading logic to respect capabilities and filter tools accordingly * refactor: Integrate endpoint capabilities into file upload dropdown for dynamic resource handling * refactor: Implement capability checks for agent file upload operations * fix: non-image tool_resource check
29 lines
889 B
TypeScript
29 lines
889 B
TypeScript
import { useDragHelpers } from '~/hooks';
|
|
import DragDropOverlay from '~/components/Chat/Input/Files/DragDropOverlay';
|
|
import DragDropModal from '~/components/Chat/Input/Files/DragDropModal';
|
|
import { cn } from '~/utils';
|
|
|
|
interface DragDropWrapperProps {
|
|
children: React.ReactNode;
|
|
className?: string;
|
|
}
|
|
|
|
export default function DragDropWrapper({ children, className }: DragDropWrapperProps) {
|
|
const { isOver, canDrop, drop, showModal, setShowModal, draggedFiles, handleOptionSelect } =
|
|
useDragHelpers();
|
|
|
|
const isActive = canDrop && isOver;
|
|
|
|
return (
|
|
<div ref={drop} className={cn('relative flex h-full w-full', className)}>
|
|
{children}
|
|
{isActive && <DragDropOverlay />}
|
|
<DragDropModal
|
|
files={draggedFiles}
|
|
isVisible={showModal}
|
|
setShowModal={setShowModal}
|
|
onOptionSelect={handleOptionSelect}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|