From f6290c02387100a4f0941f37e6cdb80570e0dcdc Mon Sep 17 00:00:00 2001 From: Reece Date: Tue, 7 Oct 2025 21:52:40 +0100 Subject: [PATCH] - Refactored signature saving process --- .../rightRail/ViewerAnnotationControls.tsx | 10 ++++ .../components/tools/sign/SignSettings.tsx | 12 ++++- frontend/src/contexts/file/FileReducer.ts | 5 +- frontend/src/tools/Sign.tsx | 49 ++++++++++------- frontend/src/utils/signatureFlattening.ts | 53 ++++++++++++++----- 5 files changed, 94 insertions(+), 35 deletions(-) diff --git a/frontend/src/components/shared/rightRail/ViewerAnnotationControls.tsx b/frontend/src/components/shared/rightRail/ViewerAnnotationControls.tsx index 42dbbb5a8..0b9d9a754 100644 --- a/frontend/src/components/shared/rightRail/ViewerAnnotationControls.tsx +++ b/frontend/src/components/shared/rightRail/ViewerAnnotationControls.tsx @@ -10,6 +10,7 @@ import { useFileState, useFileContext } from '../../../contexts/FileContext'; import { generateThumbnailWithMetadata } from '../../../utils/thumbnailUtils'; import { createProcessedFile } from '../../../contexts/file/fileActions'; import { createStirlingFile, createNewStirlingFileStub } from '../../../types/fileContext'; +import { useNavigationState } from '../../../contexts/NavigationContext'; interface ViewerAnnotationControlsProps { currentView: string; @@ -32,6 +33,10 @@ export default function ViewerAnnotationControls({ currentView }: ViewerAnnotati const { actions: fileActions } = useFileContext(); const activeFiles = selectors.getFiles(); + // Check if we're in sign mode + const { selectedTool } = useNavigationState(); + const isSignMode = selectedTool === 'sign'; + // Turn off annotation mode when switching away from viewer useEffect(() => { if (currentView !== 'viewer' && viewerContext?.isAnnotationMode) { @@ -39,6 +44,11 @@ export default function ViewerAnnotationControls({ currentView }: ViewerAnnotati } }, [currentView, viewerContext]); + // Don't show any annotation controls in sign mode + if (isSignMode) { + return null; + } + return ( <> {/* Annotation Visibility Toggle */} diff --git a/frontend/src/components/tools/sign/SignSettings.tsx b/frontend/src/components/tools/sign/SignSettings.tsx index 9585bad1c..1bc72d840 100644 --- a/frontend/src/components/tools/sign/SignSettings.tsx +++ b/frontend/src/components/tools/sign/SignSettings.tsx @@ -116,6 +116,13 @@ const SignSettings = ({ } }, [parameters.signatureType, parameters.signerName, parameters.fontSize, parameters.fontFamily, onActivateSignaturePlacement, onDeactivateSignature]); + // Reset to move mode when placement mode is deactivated + useEffect(() => { + if (!isPlacementMode && interactionMode === 'place') { + setInteractionMode('move'); + } + }, [isPlacementMode, interactionMode]); + // Handle signature data updates useEffect(() => { let newSignatureData: string | undefined = undefined; @@ -288,7 +295,10 @@ const SignSettings = ({ {/* Apply Signatures Button */} {onSave && (