mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-11-16 01:21:16 +01:00
import annotation type enum
This commit is contained in:
parent
c4f8c42a5a
commit
d52f1777e0
@ -2,7 +2,7 @@ import { useImperativeHandle, forwardRef, useEffect, useRef } from 'react';
|
|||||||
import { useHistoryCapability } from '@embedpdf/plugin-history/react';
|
import { useHistoryCapability } from '@embedpdf/plugin-history/react';
|
||||||
import { useAnnotationCapability } from '@embedpdf/plugin-annotation/react';
|
import { useAnnotationCapability } from '@embedpdf/plugin-annotation/react';
|
||||||
import { useSignature } from '@app/contexts/SignatureContext';
|
import { useSignature } from '@app/contexts/SignatureContext';
|
||||||
import { uuidV4 } from '@embedpdf/models';
|
import { PdfAnnotationSubtype, uuidV4 } from '@embedpdf/models';
|
||||||
import type { HistoryAPI } from '@app/components/viewer/viewerTypes';
|
import type { HistoryAPI } from '@app/components/viewer/viewerTypes';
|
||||||
import { ANNOTATION_RECREATION_DELAY_MS, ANNOTATION_VERIFICATION_DELAY_MS } from '@app/core/constants/app';
|
import { ANNOTATION_RECREATION_DELAY_MS, ANNOTATION_VERIFICATION_DELAY_MS } from '@app/core/constants/app';
|
||||||
|
|
||||||
@ -20,14 +20,14 @@ export const HistoryAPIBridge = forwardRef<HistoryAPI>(function HistoryAPIBridge
|
|||||||
const annotation = event.annotation;
|
const annotation = event.annotation;
|
||||||
|
|
||||||
// Store image data for all STAMP annotations immediately when created or modified
|
// Store image data for all STAMP annotations immediately when created or modified
|
||||||
if (annotation && annotation.type === 13 && annotation.id && annotation.imageSrc) {
|
if (annotation && annotation.type === PdfAnnotationSubtype.STAMP && annotation.id && annotation.imageSrc) {
|
||||||
const storedImageData = getImageData(annotation.id);
|
const storedImageData = getImageData(annotation.id);
|
||||||
if (!storedImageData) {
|
if (!storedImageData) {
|
||||||
storeImageData(annotation.id, annotation.imageSrc);
|
storeImageData(annotation.id, annotation.imageSrc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (annotation && annotation.type === 13 && annotation.id) {
|
if (annotation && annotation.type === PdfAnnotationSubtype.STAMP && annotation.id) {
|
||||||
// Prevent infinite loops when we recreate annotations
|
// Prevent infinite loops when we recreate annotations
|
||||||
if (restoringIds.current.has(annotation.id)) {
|
if (restoringIds.current.has(annotation.id)) {
|
||||||
restoringIds.current.delete(annotation.id);
|
restoringIds.current.delete(annotation.id);
|
||||||
@ -71,7 +71,7 @@ export const HistoryAPIBridge = forwardRef<HistoryAPI>(function HistoryAPIBridge
|
|||||||
// Handle annotation restoration after undo operations
|
// Handle annotation restoration after undo operations
|
||||||
if (event.type === 'create' && event.committed) {
|
if (event.type === 'create' && event.committed) {
|
||||||
// Check if this is a STAMP annotation (signature) that might need image data restoration
|
// Check if this is a STAMP annotation (signature) that might need image data restoration
|
||||||
if (annotation && annotation.type === 13 && annotation.id) {
|
if (annotation && annotation.type === PdfAnnotationSubtype.STAMP && annotation.id) {
|
||||||
getImageData(annotation.id);
|
getImageData(annotation.id);
|
||||||
|
|
||||||
// Delay the check to allow the annotation to be fully created
|
// Delay the check to allow the annotation to be fully created
|
||||||
|
|||||||
@ -346,7 +346,7 @@ export const SignatureAPIBridge = forwardRef<SignatureAPI>(function SignatureAPI
|
|||||||
if (pageAnnotationsTask) {
|
if (pageAnnotationsTask) {
|
||||||
pageAnnotationsTask.toPromise().then((pageAnnotations: any) => {
|
pageAnnotationsTask.toPromise().then((pageAnnotations: any) => {
|
||||||
const annotation = pageAnnotations?.find((ann: any) => ann.id === annotationId);
|
const annotation = pageAnnotations?.find((ann: any) => ann.id === annotationId);
|
||||||
if (annotation && annotation.type === 13 && annotation.imageSrc) {
|
if (annotation && annotation.type === PdfAnnotationSubtype.STAMP && annotation.imageSrc) {
|
||||||
// Store image data before deletion
|
// Store image data before deletion
|
||||||
storeImageData(annotationId, annotation.imageSrc);
|
storeImageData(annotationId, annotation.imageSrc);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { PDFDocument, rgb } from 'pdf-lib';
|
import { PDFDocument, rgb } from 'pdf-lib';
|
||||||
|
import { PdfAnnotationSubtype } from '@embedpdf/models';
|
||||||
import { generateThumbnailWithMetadata } from '@app/utils/thumbnailUtils';
|
import { generateThumbnailWithMetadata } from '@app/utils/thumbnailUtils';
|
||||||
import { createProcessedFile, createChildStub } from '@app/contexts/file/fileActions';
|
import { createProcessedFile, createChildStub } from '@app/contexts/file/fileActions';
|
||||||
import { createStirlingFile, StirlingFile, FileId, StirlingFileStub } from '@app/types/fileContext';
|
import { createStirlingFile, StirlingFile, FileId, StirlingFileStub } from '@app/types/fileContext';
|
||||||
@ -228,7 +229,7 @@ export async function flattenSignatures(options: SignatureFlatteningOptions): Pr
|
|||||||
size: 12,
|
size: 12,
|
||||||
color: rgb(0, 0, 0)
|
color: rgb(0, 0, 0)
|
||||||
});
|
});
|
||||||
} else if (annotation.type === 14 || annotation.type === 15) {
|
} else if (annotation.type === PdfAnnotationSubtype.INK || annotation.type === PdfAnnotationSubtype.LINE) {
|
||||||
// Handle ink annotations (drawn signatures)
|
// Handle ink annotations (drawn signatures)
|
||||||
page.drawRectangle({
|
page.drawRectangle({
|
||||||
x: pdfX,
|
x: pdfX,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user