Skip to content

Commit

Permalink
Tweak icon position when empty
Browse files Browse the repository at this point in the history
  • Loading branch information
DustinBrett committed Feb 17, 2025
1 parent 4c82b82 commit ac9b34f
Showing 1 changed file with 21 additions and 23 deletions.
44 changes: 21 additions & 23 deletions utils/functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -522,8 +522,8 @@ export const updateIconPositionsIfEmpty = (
const { x, y, height, width } = gridEntry.getBoundingClientRect();

newIconPositions[entryUrl] = calcGridDropPosition(gridElement, {
x: x - width,
y: y + height,
x: x + width / 2,
y: y + height / 2,
});
} else {
const position = index + 1;
Expand Down Expand Up @@ -632,14 +632,14 @@ export const updateIconPositions = (
): void => {
if (!gridElement || draggedEntries.length === 0) return;

const currentIconPositions = updateIconPositionsIfEmpty(
const updatedIconPositions = updateIconPositionsIfEmpty(
directory,
gridElement,
iconPositions,
sortOrders
);
const gridDropPosition = calcGridDropPosition(gridElement, dragPosition);
const conflictingIcon = Object.entries(currentIconPositions).find(
const conflictingIcon = Object.entries(updatedIconPositions).find(
([, { gridColumnStart, gridRowStart }]) =>
gridColumnStart === gridDropPosition.gridColumnStart &&
gridRowStart === gridDropPosition.gridRowStart
Expand All @@ -654,7 +654,7 @@ export const updateIconPositions = (
targetFile,
...draggedEntries.filter((entry) => entry !== targetFile),
];
const newIconPositions = Object.fromEntries(
const adjustIconPositions = Object.fromEntries(
adjustDraggedEntries
.map<[string, IconPosition]>((entryFile) => {
const url = join(directory, entryFile);
Expand All @@ -666,7 +666,7 @@ export const updateIconPositions = (
: calcGridPositionOffset(
url,
targetUrl,
currentIconPositions,
updatedIconPositions,
gridDropPosition,
adjustDraggedEntries,
gridElement
Expand All @@ -678,31 +678,29 @@ export const updateIconPositions = (
gridColumnStart >= 1 && gridRowStart >= 1
)
);
const newIconPositions = Object.fromEntries(
Object.entries(adjustIconPositions).filter(
([, { gridColumnStart, gridRowStart }]) =>
!Object.values(updatedIconPositions).some(
({
gridColumnStart: currentGridColumnStart,
gridRowStart: currentRowColumnStart,
}) =>
gridColumnStart === currentGridColumnStart &&
gridRowStart === currentRowColumnStart
)
)
);

setIconPositions({
...currentIconPositions,
...Object.fromEntries(
Object.entries(newIconPositions).filter(
([, { gridColumnStart, gridRowStart }]) =>
!Object.values(currentIconPositions).some(
({
gridColumnStart: currentGridColumnStart,
gridRowStart: currentRowColumnStart,
}) =>
gridColumnStart === currentGridColumnStart &&
gridRowStart === currentRowColumnStart
)
)
),
});
setIconPositions({ ...updatedIconPositions, ...newIconPositions });
};

if (conflictingIcon) {
const [conflictingIconPath] = conflictingIcon;

exists(conflictingIconPath).then((pathExists) => {
if (!pathExists) {
delete currentIconPositions[conflictingIconPath];
delete updatedIconPositions[conflictingIconPath];
processIconMove();
}
});
Expand Down

0 comments on commit ac9b34f

Please sign in to comment.