Web: Files: fixed dnd media files

This commit is contained in:
Nikita Gopienko 2023-03-20 15:49:00 +03:00
parent b96030c0b2
commit 148b1a9843
8 changed files with 31 additions and 15 deletions

View File

@ -82,6 +82,8 @@ export default function withFileActions(WrappedFileItem) {
setBufferSelection, setBufferSelection,
isActive, isActive,
inProgress, inProgress,
isSelected,
setSelection,
} = this.props; } = this.props;
const { isThirdPartyFolder } = item; const { isThirdPartyFolder } = item;
@ -119,7 +121,11 @@ export default function withFileActions(WrappedFileItem) {
e.preventDefault(); e.preventDefault();
setTooltipPosition(e.pageX, e.pageY); setTooltipPosition(e.pageX, e.pageY);
setStartDrag(true); setStartDrag(true);
!isActive && setBufferSelection(null);
if (isFileName && !isSelected) {
setSelection([]);
setBufferSelection(item);
}
}; };
onMouseClick = (e) => { onMouseClick = (e) => {
@ -221,7 +227,7 @@ export default function withFileActions(WrappedFileItem) {
isPrivacy, isPrivacy,
sectionWidth, sectionWidth,
checked, isSelected,
dragging, dragging,
isFolder, isFolder,
@ -249,7 +255,7 @@ export default function withFileActions(WrappedFileItem) {
? "38px" ? "38px"
: "96px"; : "96px";
const checkedProps = id <= 0 ? false : checked; const checkedProps = id <= 0 ? false : isSelected;
return ( return (
<WrappedFileItem <WrappedFileItem
@ -311,6 +317,7 @@ export default function withFileActions(WrappedFileItem) {
dragging, dragging,
setDragging, setDragging,
selection, selection,
setSelection,
setTooltipPosition, setTooltipPosition,
setStartDrag, setStartDrag,
@ -379,7 +386,7 @@ export default function withFileActions(WrappedFileItem) {
isFolder, isFolder,
allowShareIn: filesStore.canShare, allowShareIn: filesStore.canShare,
checked: !!selectedItem, isSelected: !!selectedItem,
//parentFolder: selectedFolderStore.parentId, //parentFolder: selectedFolderStore.parentId,
setParentId: selectedFolderStore.setParentId, setParentId: selectedFolderStore.setParentId,
isTrashFolder: isRecycleBinFolder, isTrashFolder: isRecycleBinFolder,
@ -396,6 +403,8 @@ export default function withFileActions(WrappedFileItem) {
setSelected, setSelected,
withCtrlSelect, withCtrlSelect,
withShiftSelect, withShiftSelect,
setSelection,
}; };
} }
)(observer(WithFileActions)); )(observer(WithFileActions));

View File

@ -39,12 +39,11 @@ const DragTooltip = (props) => {
tooltipOptions, tooltipOptions,
iconOfDraggedFile, iconOfDraggedFile,
isSingleItem, isSingleItem,
item, title,
tooltipPageX, tooltipPageX,
tooltipPageY, tooltipPageY,
} = props; } = props;
const { filesCount, operationName } = tooltipOptions; const { filesCount, operationName } = tooltipOptions;
const { title } = item;
useEffect(() => { useEffect(() => {
setTooltipPosition(); setTooltipPosition();
@ -108,12 +107,14 @@ export default inject(({ filesStore }) => {
tooltipOptions, tooltipOptions,
tooltipPageX, tooltipPageX,
tooltipPageY, tooltipPageY,
bufferSelection,
} = filesStore; } = filesStore;
const isSingleItem = selection.length === 1; const isSingleItem = selection.length === 1 || bufferSelection;
const item = bufferSelection ? bufferSelection : selection[0];
return { return {
item: selection[0], title: item?.title,
isSingleItem, isSingleItem,
tooltipOptions, tooltipOptions,
iconOfDraggedFile, iconOfDraggedFile,

View File

@ -5,6 +5,8 @@ import DragTooltip from "./DragTooltip";
const Tooltip = ({ dragging }) => (dragging ? <DragTooltip /> : <></>); const Tooltip = ({ dragging }) => (dragging ? <DragTooltip /> : <></>);
export default inject(({ filesStore }) => { export default inject(({ filesStore }) => {
const { dragging, selection, startDrag } = filesStore; const { dragging, selection, startDrag, bufferSelection } = filesStore;
return { dragging: dragging && selection[0] && startDrag }; return {
dragging: dragging && (selection[0] || bufferSelection) && startDrag,
};
})(observer(Tooltip)); })(observer(Tooltip));

View File

@ -120,7 +120,7 @@ const FilesRowContent = ({
isFile={fileExst || contentLength} isFile={fileExst || contentLength}
> >
<Link <Link
className={`row-content-link ${isMedia ? "media-file" : ""}`} className="row-content-link"
containerWidth="55%" containerWidth="55%"
type="page" type="page"
title={title} title={title}

View File

@ -57,7 +57,7 @@ const FileNameCell = ({
{...linkStyles} {...linkStyles}
color={theme.filesSection.tableView.fileName.linkColor} color={theme.filesSection.tableView.fileName.linkColor}
isTextOverflow isTextOverflow
className={`item-file-name ${isMedia ? "media-file" : ""}`} className="item-file-name"
> >
{titleWithoutExt} {titleWithoutExt}
</Link> </Link>

View File

@ -91,7 +91,7 @@ const FilesTileContent = ({
isRooms={isRooms} isRooms={isRooms}
> >
<Link <Link
className={`item-file-name ${isMedia ? "media-file" : ""}`} className="item-file-name"
containerWidth="100%" containerWidth="100%"
type="page" type="page"
title={title} title={title}

View File

@ -1287,9 +1287,13 @@ class FilesActionStore {
const fileIds = []; const fileIds = [];
const deleteAfter = false; const deleteAfter = false;
const { selection } = this.filesStore; const { bufferSelection } = this.filesStore;
const { isRootFolder } = this.selectedFolderStore; const { isRootFolder } = this.selectedFolderStore;
const selection = bufferSelection
? [bufferSelection]
: this.filesStore.selection;
const isCopy = selection.findIndex((f) => f.security.Move) === -1; const isCopy = selection.findIndex((f) => f.security.Move) === -1;
const operationData = { const operationData = {

View File

@ -267,7 +267,7 @@ class SelectionArea extends React.Component {
e.target.closest(".row-selected") || e.target.closest(".row-selected") ||
!e.target.closest("#sectionScroll") || !e.target.closest("#sectionScroll") ||
e.target.closest(".table-container_row-checkbox") || e.target.closest(".table-container_row-checkbox") ||
e.target.closest(".media-file") e.target.closest(".item-file-name")
) )
return; return;