mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-12-18 20:04:17 +01:00
Remove arbitrary timers
This commit is contained in:
parent
fa6e01b46e
commit
0c9f460fb6
@ -13,6 +13,7 @@ import { useNavigationGuard, useNavigationState } from '../../contexts/Navigatio
|
||||
import { useSignature } from '../../contexts/SignatureContext';
|
||||
import { createStirlingFilesAndStubs } from '../../services/fileStubHelpers';
|
||||
import NavigationWarningModal from '../shared/NavigationWarningModal';
|
||||
import { isStirlingFile } from '../../types/fileContext';
|
||||
|
||||
export interface EmbedPdfViewerProps {
|
||||
sidebarsVisible: boolean;
|
||||
@ -263,6 +264,7 @@ const EmbedPdfViewerContent = ({
|
||||
transition: 'margin-right 0.3s ease'
|
||||
}}>
|
||||
<LocalEmbedPDF
|
||||
key={currentFile && isStirlingFile(currentFile) ? currentFile.fileId : (effectiveFile.file instanceof File ? effectiveFile.file.name : effectiveFile.url)}
|
||||
file={effectiveFile.file}
|
||||
url={effectiveFile.url}
|
||||
enableAnnotations={shouldEnableAnnotations}
|
||||
|
||||
@ -75,9 +75,6 @@ const Sign = (props: BaseToolProps) => {
|
||||
console.log('exportActions:', exportActions);
|
||||
console.log('signatureApiRef.current:', signatureApiRef.current);
|
||||
|
||||
// Deactivate signature placement mode immediately
|
||||
handleDeactivateSignature();
|
||||
|
||||
// Unregister unsaved changes checker to prevent warning during apply
|
||||
unregisterUnsavedChangesChecker();
|
||||
setHasUnsavedChanges(false);
|
||||
@ -104,29 +101,36 @@ const Sign = (props: BaseToolProps) => {
|
||||
console.log('originalFile:', originalFile);
|
||||
|
||||
// Use the signature flattening utility
|
||||
const newFileIds = await flattenSignatures({
|
||||
const flattenResult = await flattenSignatures({
|
||||
signatureApiRef,
|
||||
getImageData,
|
||||
exportActions,
|
||||
selectors,
|
||||
consumeFiles,
|
||||
originalFile,
|
||||
getScrollState
|
||||
});
|
||||
|
||||
console.log('flattenSignatures result:', newFileIds);
|
||||
console.log('flattenSignatures result:', flattenResult);
|
||||
|
||||
if (newFileIds && newFileIds.length > 0) {
|
||||
console.log('✓ Signature flattening completed successfully');
|
||||
if (flattenResult) {
|
||||
console.log('✓ Signature flattening completed - now consuming files');
|
||||
|
||||
// Now consume the files - this triggers the viewer reload
|
||||
const newFileIds = await consumeFiles(
|
||||
flattenResult.inputFileIds,
|
||||
[flattenResult.outputStirlingFile],
|
||||
[flattenResult.outputStub]
|
||||
);
|
||||
|
||||
console.log('✓ Files consumed successfully. New file IDs:', newFileIds);
|
||||
|
||||
// Mark signatures as applied
|
||||
setSignaturesApplied(true);
|
||||
|
||||
// Force viewer reload to show flattened PDF
|
||||
setWorkbench('fileEditor');
|
||||
setTimeout(() => {
|
||||
setWorkbench('viewer');
|
||||
}, 50);
|
||||
// Deactivate signature placement mode after everything completes
|
||||
handleDeactivateSignature();
|
||||
|
||||
// File has been consumed - viewer should reload automatically via key prop
|
||||
} else {
|
||||
console.error('Signature flattening failed');
|
||||
}
|
||||
|
||||
@ -17,13 +17,18 @@ interface SignatureFlatteningOptions {
|
||||
saveAsCopy: () => Promise<ArrayBuffer | null>;
|
||||
};
|
||||
selectors: MinimalFileContextSelectors;
|
||||
consumeFiles: (inputFileIds: FileId[], outputStirlingFiles: StirlingFile[], outputStirlingFileStubs: StirlingFileStub[]) => Promise<FileId[]>;
|
||||
originalFile?: StirlingFile;
|
||||
getScrollState: () => { currentPage: number; totalPages: number };
|
||||
}
|
||||
|
||||
export async function flattenSignatures(options: SignatureFlatteningOptions): Promise<FileId[] | null> {
|
||||
const { signatureApiRef, getImageData, exportActions, selectors, consumeFiles, originalFile, getScrollState } = options;
|
||||
export interface SignatureFlatteningResult {
|
||||
inputFileIds: FileId[];
|
||||
outputStirlingFile: StirlingFile;
|
||||
outputStub: StirlingFileStub;
|
||||
}
|
||||
|
||||
export async function flattenSignatures(options: SignatureFlatteningOptions): Promise<SignatureFlatteningResult | null> {
|
||||
const { signatureApiRef, getImageData, exportActions, selectors, originalFile, getScrollState } = options;
|
||||
|
||||
try {
|
||||
// Step 1: Extract all annotations from EmbedPDF before export
|
||||
@ -319,13 +324,14 @@ export async function flattenSignatures(options: SignatureFlatteningOptions): Pr
|
||||
const outputStirlingFile = createStirlingFile(signedFile, outputStub.id);
|
||||
|
||||
console.log('Output stub version:', outputStub.versionNumber);
|
||||
console.log('Consuming files - replacing:', inputFileIds, 'with:', outputStub.id);
|
||||
console.log('✓ Signature flattening completed successfully');
|
||||
|
||||
// Replace the original file with the signed version
|
||||
const newFileIds = await consumeFiles(inputFileIds, [outputStirlingFile], [outputStub]);
|
||||
|
||||
console.log('✓ Signature flattening completed successfully. New file IDs:', newFileIds);
|
||||
return newFileIds;
|
||||
// Return the flattened file data for consumption by caller
|
||||
return {
|
||||
inputFileIds,
|
||||
outputStirlingFile,
|
||||
outputStub
|
||||
};
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user