mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-08-27 14:49:23 +00:00
Fix drag and drop and add file at page
This commit is contained in:
parent
75f9cd81d1
commit
53ac963e17
@ -139,9 +139,7 @@ const PageThumbnail: React.FC<PageThumbnailProps> = ({
|
|||||||
getInitialData: () => ({
|
getInitialData: () => ({
|
||||||
pageNumber: page.pageNumber,
|
pageNumber: page.pageNumber,
|
||||||
pageId: page.id,
|
pageId: page.id,
|
||||||
selectedPages: selectionMode && selectedPages.includes(page.pageNumber)
|
selectedPages: [page.pageNumber]
|
||||||
? selectedPages
|
|
||||||
: [page.pageNumber]
|
|
||||||
}),
|
}),
|
||||||
onDragStart: () => {
|
onDragStart: () => {
|
||||||
setIsDragging(true);
|
setIsDragging(true);
|
||||||
@ -160,12 +158,7 @@ const PageThumbnail: React.FC<PageThumbnailProps> = ({
|
|||||||
const targetPageNumber = targetData.pageNumber as number;
|
const targetPageNumber = targetData.pageNumber as number;
|
||||||
const targetIndex = pdfDocument.pages.findIndex(p => p.pageNumber === targetPageNumber);
|
const targetIndex = pdfDocument.pages.findIndex(p => p.pageNumber === targetPageNumber);
|
||||||
if (targetIndex !== -1) {
|
if (targetIndex !== -1) {
|
||||||
const pagesToMove = selectionMode && selectedPages.includes(page.pageNumber)
|
onReorderPages(page.pageNumber, targetIndex, undefined);
|
||||||
? selectedPages
|
|
||||||
: undefined;
|
|
||||||
// Trigger animation for drag & drop
|
|
||||||
onAnimateReorder();
|
|
||||||
onReorderPages(page.pageNumber, targetIndex, pagesToMove);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -454,8 +447,6 @@ const PageThumbnail: React.FC<PageThumbnailProps> = ({
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (index > 0 && !movingPage && !isAnimating) {
|
if (index > 0 && !movingPage && !isAnimating) {
|
||||||
onSetMovingPage(page.pageNumber);
|
onSetMovingPage(page.pageNumber);
|
||||||
// Trigger animation
|
|
||||||
onAnimateReorder();
|
|
||||||
// Actually move the page left (swap with previous page)
|
// Actually move the page left (swap with previous page)
|
||||||
onReorderPages(page.pageNumber, index - 1);
|
onReorderPages(page.pageNumber, index - 1);
|
||||||
setTimeout(() => onSetMovingPage(null), 650);
|
setTimeout(() => onSetMovingPage(null), 650);
|
||||||
@ -477,8 +468,6 @@ const PageThumbnail: React.FC<PageThumbnailProps> = ({
|
|||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
if (index < totalPages - 1 && !movingPage && !isAnimating) {
|
if (index < totalPages - 1 && !movingPage && !isAnimating) {
|
||||||
onSetMovingPage(page.pageNumber);
|
onSetMovingPage(page.pageNumber);
|
||||||
// Trigger animation
|
|
||||||
onAnimateReorder();
|
|
||||||
// Actually move the page right (swap with next page)
|
// Actually move the page right (swap with next page)
|
||||||
onReorderPages(page.pageNumber, index + 1);
|
onReorderPages(page.pageNumber, index + 1);
|
||||||
setTimeout(() => onSetMovingPage(null), 650);
|
setTimeout(() => onSetMovingPage(null), 650);
|
||||||
|
@ -209,6 +209,11 @@ export async function addFiles(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store insertion position if provided
|
||||||
|
if (options.insertAfterPageId !== undefined) {
|
||||||
|
record.insertAfterPageId = options.insertAfterPageId;
|
||||||
|
}
|
||||||
|
|
||||||
// Create processedFile with provided metadata
|
// Create processedFile with provided metadata
|
||||||
if (pageCount > 0) {
|
if (pageCount > 0) {
|
||||||
record.processedFile = createProcessedFile(pageCount, thumbnail);
|
record.processedFile = createProcessedFile(pageCount, thumbnail);
|
||||||
@ -279,6 +284,11 @@ export async function addFiles(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store insertion position if provided
|
||||||
|
if (options.insertAfterPageId !== undefined) {
|
||||||
|
record.insertAfterPageId = options.insertAfterPageId;
|
||||||
|
}
|
||||||
|
|
||||||
// Create processedFile metadata with correct page count
|
// Create processedFile metadata with correct page count
|
||||||
if (pageCount > 0) {
|
if (pageCount > 0) {
|
||||||
record.processedFile = createProcessedFile(pageCount, metadata.thumbnail);
|
record.processedFile = createProcessedFile(pageCount, metadata.thumbnail);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user