From bd86a58d9a9441b0aed917df5683699eb1195bc1 Mon Sep 17 00:00:00 2001 From: Connor Yoh Date: Fri, 15 Aug 2025 14:04:46 +0100 Subject: [PATCH] formatting --- frontend/src/tools/AddPassword.tsx | 37 ++++--- frontend/src/tools/ChangePermissions.tsx | 57 ++++++----- frontend/src/tools/Compress.tsx | 80 +++++++-------- frontend/src/tools/Convert.tsx | 91 ++++++++--------- frontend/src/tools/Merge.tsx | 100 ++++++++---------- frontend/src/tools/OCR.tsx | 124 +++++++++++------------ frontend/src/tools/Sanitize.tsx | 83 ++++++++------- frontend/src/tools/Split.tsx | 83 ++++++++------- frontend/src/tools/SwaggerUI.tsx | 17 ++-- 9 files changed, 323 insertions(+), 349 deletions(-) diff --git a/frontend/src/tools/AddPassword.tsx b/frontend/src/tools/AddPassword.tsx index 91dc88c6d..1b926aa4a 100644 --- a/frontend/src/tools/AddPassword.tsx +++ b/frontend/src/tools/AddPassword.tsx @@ -37,30 +37,27 @@ const AddPassword = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleAddPassword = async () => { try { - await addPasswordOperation.executeOperation( - addPasswordParams.fullParameters, - selectedFiles - ); + await addPasswordOperation.executeOperation(addPasswordParams.fullParameters, selectedFiles); if (addPasswordOperation.files && onComplete) { onComplete(addPasswordOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : t('addPassword.error.failed', 'Add password operation failed')); + onError(error instanceof Error ? error.message : t("addPassword.error.failed", "Add password operation failed")); } } }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'addPassword'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "addPassword"); + setCurrentMode("viewer"); }; const handleSettingsReset = () => { addPasswordOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('addPassword'); + setCurrentMode("addPassword"); }; const hasFiles = selectedFiles.length > 0; @@ -75,7 +72,7 @@ const AddPassword = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { }, steps: [ { - title: t('addPassword.passwords.stepTitle', 'Passwords & Encryption'), + title: t("addPassword.passwords.stepTitle", "Passwords & Encryption"), isCollapsed: passwordsCollapsed, onCollapsedClick: hasResults ? handleSettingsReset : undefined, tooltip: addPasswordTips, @@ -85,10 +82,10 @@ const AddPassword = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { onParameterChange={addPasswordParams.updateParameter} disabled={endpointLoading} /> - ) + ), }, { - title: t('changePermissions.title', 'Document Permissions'), + title: t("changePermissions.title", "Document Permissions"), isCollapsed: permissionsCollapsed, onCollapsedClick: hasResults ? handleSettingsReset : () => setCollapsedPermissions(!collapsedPermissions), content: ( @@ -97,23 +94,23 @@ const AddPassword = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { onParameterChange={addPasswordParams.permissions.updateParameter} disabled={endpointLoading} /> - ) - } + ), + }, ], executeButton: { - text: t('addPassword.submit', 'Encrypt'), + text: t("addPassword.submit", "Encrypt"), isVisible: !hasResults, - loadingText: t('loading'), + loadingText: t("loading"), onClick: handleAddPassword, - disabled: !addPasswordParams.validateParameters() || !hasFiles || !endpointEnabled + disabled: !addPasswordParams.validateParameters() || !hasFiles || !endpointEnabled, }, review: { isVisible: hasResults, operation: addPasswordOperation, - title: t('addPassword.results.title', 'Encrypted PDFs'), - onFileClick: handleThumbnailClick - } + title: t("addPassword.results.title", "Encrypted PDFs"), + onFileClick: handleThumbnailClick, + }, }); -} +}; export default AddPassword; diff --git a/frontend/src/tools/ChangePermissions.tsx b/frontend/src/tools/ChangePermissions.tsx index 59c2bad6a..9a9647759 100644 --- a/frontend/src/tools/ChangePermissions.tsx +++ b/frontend/src/tools/ChangePermissions.tsx @@ -32,30 +32,29 @@ const ChangePermissions = ({ onPreviewFile, onComplete, onError }: BaseToolProps const handleChangePermissions = async () => { try { - await changePermissionsOperation.executeOperation( - changePermissionsParams.parameters, - selectedFiles - ); + await changePermissionsOperation.executeOperation(changePermissionsParams.parameters, selectedFiles); if (changePermissionsOperation.files && onComplete) { onComplete(changePermissionsOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : t('changePermissions.error.failed', 'Change permissions operation failed')); + onError( + error instanceof Error ? error.message : t("changePermissions.error.failed", "Change permissions operation failed") + ); } } }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'changePermissions'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "changePermissions"); + setCurrentMode("viewer"); }; const handleSettingsReset = () => { changePermissionsOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('changePermissions'); + setCurrentMode("changePermissions"); }; const hasFiles = selectedFiles.length > 0; @@ -67,33 +66,35 @@ const ChangePermissions = ({ onPreviewFile, onComplete, onError }: BaseToolProps selectedFiles, isCollapsed: hasFiles || hasResults, }, - steps: [{ - title: t('changePermissions.title', 'Document Permissions'), - isCollapsed: settingsCollapsed, - onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, - tooltip: changePermissionsTips, - content: ( - - ) - }], + steps: [ + { + title: t("changePermissions.title", "Document Permissions"), + isCollapsed: settingsCollapsed, + onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, + tooltip: changePermissionsTips, + content: ( + + ), + }, + ], executeButton: { - text: t('changePermissions.submit', 'Change Permissions'), + text: t("changePermissions.submit", "Change Permissions"), isVisible: !hasResults, - loadingText: t('loading'), + loadingText: t("loading"), onClick: handleChangePermissions, - disabled: !changePermissionsParams.validateParameters() || !hasFiles || !endpointEnabled + disabled: !changePermissionsParams.validateParameters() || !hasFiles || !endpointEnabled, }, review: { isVisible: hasResults, operation: changePermissionsOperation, - title: t('changePermissions.results.title', 'Modified PDFs'), - onFileClick: handleThumbnailClick - } + title: t("changePermissions.results.title", "Modified PDFs"), + onFileClick: handleThumbnailClick, + }, }); -} +}; export default ChangePermissions; diff --git a/frontend/src/tools/Compress.tsx b/frontend/src/tools/Compress.tsx index df00b6852..ace479b8e 100644 --- a/frontend/src/tools/Compress.tsx +++ b/frontend/src/tools/Compress.tsx @@ -32,30 +32,27 @@ const Compress = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleCompress = async () => { try { - await compressOperation.executeOperation( - compressParams.parameters, - selectedFiles - ); + await compressOperation.executeOperation(compressParams.parameters, selectedFiles); if (compressOperation.files && onComplete) { onComplete(compressOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : 'Compress operation failed'); + onError(error instanceof Error ? error.message : "Compress operation failed"); } } }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'compress'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "compress"); + setCurrentMode("viewer"); }; const handleSettingsReset = () => { compressOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('compress'); + setCurrentMode("compress"); }; const hasFiles = selectedFiles.length > 0; @@ -63,38 +60,39 @@ const Compress = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const settingsCollapsed = !hasFiles || hasResults; return createToolFlow({ - files: { - selectedFiles, - isCollapsed: hasFiles && !hasResults, - }, - steps: [{ - title: "Settings", - isCollapsed: settingsCollapsed, - onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, - tooltip: compressTips, - content: ( - - ) - }], - executeButton: { - text: t("compress.submit", "Compress"), - isVisible: !hasResults, - loadingText: t("loading"), - onClick: handleCompress, - disabled: !compressParams.validateParameters() || !hasFiles || !endpointEnabled - }, - review: { - isVisible: hasResults, - operation: compressOperation, - title: t("compress.title", "Compression Results"), - onFileClick: handleThumbnailClick - } - }); -} - + files: { + selectedFiles, + isCollapsed: hasFiles && !hasResults, + }, + steps: [ + { + title: "Settings", + isCollapsed: settingsCollapsed, + onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, + tooltip: compressTips, + content: ( + + ), + }, + ], + executeButton: { + text: t("compress.submit", "Compress"), + isVisible: !hasResults, + loadingText: t("loading"), + onClick: handleCompress, + disabled: !compressParams.validateParameters() || !hasFiles || !endpointEnabled, + }, + review: { + isVisible: hasResults, + operation: compressOperation, + title: t("compress.title", "Compression Results"), + onFileClick: handleThumbnailClick, + }, + }); +}; export default Compress; diff --git a/frontend/src/tools/Convert.tsx b/frontend/src/tools/Convert.tsx index b173bcca2..0bef140ba 100644 --- a/frontend/src/tools/Convert.tsx +++ b/frontend/src/tools/Convert.tsx @@ -21,15 +21,13 @@ const Convert = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const convertParams = useConvertParameters(); const convertOperation = useConvertOperation(); - const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled( - convertParams.getEndpointName() - ); + const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled(convertParams.getEndpointName()); const scrollToBottom = () => { if (scrollContainerRef.current) { scrollContainerRef.current.scrollTo({ top: scrollContainerRef.current.scrollHeight, - behavior: 'smooth' + behavior: "smooth", }); } }; @@ -73,68 +71,67 @@ const Convert = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleConvert = async () => { try { - await convertOperation.executeOperation( - convertParams.parameters, - selectedFiles - ); + await convertOperation.executeOperation(convertParams.parameters, selectedFiles); if (convertOperation.files && onComplete) { onComplete(convertOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : 'Convert operation failed'); + onError(error instanceof Error ? error.message : "Convert operation failed"); } } }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'convert'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "convert"); + setCurrentMode("viewer"); }; const handleSettingsReset = () => { convertOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('convert'); + setCurrentMode("convert"); }; return createToolFlow({ - files: { - selectedFiles, - isCollapsed: filesCollapsed, - placeholder: t("convert.selectFilesPlaceholder", "Select files in the main view to get started") - }, - steps: [{ - title: t("convert.settings", "Settings"), - isCollapsed: settingsCollapsed, - onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, - content: ( - - ) - }], - executeButton: { - text: t("convert.convertFiles", "Convert Files"), - loadingText: t("convert.converting", "Converting..."), - onClick: handleConvert, - isVisible: !hasResults, - disabled: !convertParams.validateParameters() || !hasFiles || !endpointEnabled, - testId: "convert-button" - }, - review: { - isVisible: hasResults, - operation: convertOperation, - title: t("convert.conversionResults", "Conversion Results"), - onFileClick: handleThumbnailClick, - testId: "conversion-results" - } - }); + files: { + selectedFiles, + isCollapsed: filesCollapsed, + placeholder: t("convert.selectFilesPlaceholder", "Select files in the main view to get started"), + }, + steps: [ + { + title: t("convert.settings", "Settings"), + isCollapsed: settingsCollapsed, + onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, + content: ( + + ), + }, + ], + executeButton: { + text: t("convert.convertFiles", "Convert Files"), + loadingText: t("convert.converting", "Converting..."), + onClick: handleConvert, + isVisible: !hasResults, + disabled: !convertParams.validateParameters() || !hasFiles || !endpointEnabled, + testId: "convert-button", + }, + review: { + isVisible: hasResults, + operation: convertOperation, + title: t("convert.conversionResults", "Conversion Results"), + onFileClick: handleThumbnailClick, + testId: "conversion-results", + }, + }); }; export default Convert; diff --git a/frontend/src/tools/Merge.tsx b/frontend/src/tools/Merge.tsx index 582a3d6ec..c28b2287c 100644 --- a/frontend/src/tools/Merge.tsx +++ b/frontend/src/tools/Merge.tsx @@ -15,12 +15,7 @@ export interface MergePdfPanelProps { updateParams: (newParams: Partial) => void; } -const MergePdfPanel: React.FC = ({ - files, - setDownloadUrl, - params, - updateParams, -}) => { +const MergePdfPanel: React.FC = ({ files, setDownloadUrl, params, updateParams }) => { const { t } = useTranslation(); const [selectedFiles, setSelectedFiles] = useState([]); const [downloadUrl, setLocalDownloadUrl] = useState(null); @@ -51,7 +46,7 @@ const MergePdfPanel: React.FC = ({ const blob = new Blob([storedFile.data], { type: storedFile.type }); const actualFile = new File([blob], storedFile.name, { type: storedFile.type, - lastModified: storedFile.lastModified + lastModified: storedFile.lastModified, }); formData.append("fileInput", actualFile); } @@ -83,9 +78,7 @@ const MergePdfPanel: React.FC = ({ }; const handleCheckboxChange = (index: number) => { - setSelectedFiles((prev) => - prev.map((selected, i) => (i === index ? !selected : selected)) - ); + setSelectedFiles((prev) => prev.map((selected, i) => (i === index ? !selected : selected))); }; const selectedCount = selectedFiles.filter(Boolean).length; @@ -96,7 +89,9 @@ const MergePdfPanel: React.FC = ({ return ( - {t("loading", "Loading...")} + + {t("loading", "Loading...")} + ); } @@ -112,55 +107,42 @@ const MergePdfPanel: React.FC = ({ } return ( - - {t("merge.header")} - - {files.map((file, index) => ( - - handleCheckboxChange(index)} - /> - {file.name} - - ))} - - {selectedCount < 2 && ( - - {t("multiPdfPrompt")} - - )} - - {errorMessage && ( - - {errorMessage} - - )} - {downloadUrl && ( - - )} - updateParams({ removeDuplicates: !removeDuplicates })} - /> + + + {t("merge.header")} + + + {files.map((file, index) => ( + + handleCheckboxChange(index)} /> + {file.name} + + ))} + {selectedCount < 2 && ( + + {t("multiPdfPrompt")} + + )} + + {errorMessage && ( + + {errorMessage} + + )} + {downloadUrl && ( + + )} + updateParams({ removeDuplicates: !removeDuplicates })} + /> + ); }; diff --git a/frontend/src/tools/OCR.tsx b/frontend/src/tools/OCR.tsx index db6704e1f..b44b349f7 100644 --- a/frontend/src/tools/OCR.tsx +++ b/frontend/src/tools/OCR.tsx @@ -24,7 +24,7 @@ const OCR = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const ocrTips = useOCRTips(); // Step expansion state management - const [expandedStep, setExpandedStep] = useState<'files' | 'settings' | 'advanced' | null>('files'); + const [expandedStep, setExpandedStep] = useState<"files" | "settings" | "advanced" | null>("files"); const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled("ocr-pdf"); @@ -38,8 +38,8 @@ const OCR = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { }, [ocrParams.parameters]); useEffect(() => { - if (selectedFiles.length > 0 && expandedStep === 'files') { - setExpandedStep('settings'); + if (selectedFiles.length > 0 && expandedStep === "files") { + setExpandedStep("settings"); } }, [selectedFiles.length, expandedStep]); @@ -52,88 +52,88 @@ const OCR = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleOCR = async () => { try { - await ocrOperation.executeOperation( - ocrParams.parameters, - selectedFiles - ); + await ocrOperation.executeOperation(ocrParams.parameters, selectedFiles); if (ocrOperation.files && onComplete) { onComplete(ocrOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : 'OCR operation failed'); + onError(error instanceof Error ? error.message : "OCR operation failed"); } } }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'ocr'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "ocr"); + setCurrentMode("viewer"); }; const handleSettingsReset = () => { ocrOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('ocr'); + setCurrentMode("ocr"); }; - - const settingsCollapsed = expandedStep !== 'settings'; + const settingsCollapsed = expandedStep !== "settings"; return createToolFlow({ - files: { - selectedFiles, - isCollapsed: hasFiles || hasResults, - }, - steps: [ - { - title: "Settings", - isCollapsed: !hasFiles || settingsCollapsed, - onCollapsedClick: hasResults ? handleSettingsReset : () => { + files: { + selectedFiles, + isCollapsed: hasFiles || hasResults, + }, + steps: [ + { + title: "Settings", + isCollapsed: !hasFiles || settingsCollapsed, + onCollapsedClick: hasResults + ? handleSettingsReset + : () => { if (!hasFiles) return; // Only allow if files are selected - setExpandedStep(expandedStep === 'settings' ? null : 'settings'); + setExpandedStep(expandedStep === "settings" ? null : "settings"); }, - tooltip: ocrTips, - content: ( - - ) - }, - { - title: "Advanced", - isCollapsed: expandedStep !== 'advanced', - onCollapsedClick: hasResults ? handleSettingsReset : () => { + tooltip: ocrTips, + content: ( + + ), + }, + { + title: "Advanced", + isCollapsed: expandedStep !== "advanced", + onCollapsedClick: hasResults + ? handleSettingsReset + : () => { if (!hasFiles) return; // Only allow if files are selected - setExpandedStep(expandedStep === 'advanced' ? null : 'advanced'); + setExpandedStep(expandedStep === "advanced" ? null : "advanced"); }, - content: ( - - ) - } - ], - executeButton: { - text: t("ocr.operation.submit", "Process OCR and Review"), - loadingText: t("loading"), - onClick: handleOCR, - isVisible: hasValidSettings && !hasResults, - disabled: !ocrParams.validateParameters() || !hasFiles || !endpointEnabled - }, - review: { - isVisible: hasResults, - operation: ocrOperation, - title: t("ocr.results.title", "OCR Results"), - onFileClick: handleThumbnailClick - } - }); -} + content: ( + + ), + }, + ], + executeButton: { + text: t("ocr.operation.submit", "Process OCR and Review"), + loadingText: t("loading"), + onClick: handleOCR, + isVisible: hasValidSettings && !hasResults, + disabled: !ocrParams.validateParameters() || !hasFiles || !endpointEnabled, + }, + review: { + isVisible: hasResults, + operation: ocrOperation, + title: t("ocr.results.title", "OCR Results"), + onFileClick: handleThumbnailClick, + }, + }); +}; export default OCR; diff --git a/frontend/src/tools/Sanitize.tsx b/frontend/src/tools/Sanitize.tsx index a98025f35..2874e54e4 100644 --- a/frontend/src/tools/Sanitize.tsx +++ b/frontend/src/tools/Sanitize.tsx @@ -21,9 +21,7 @@ const Sanitize = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const sanitizeOperation = useSanitizeOperation(); // Endpoint validation - const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled( - sanitizeParams.getEndpointName() - ); + const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled(sanitizeParams.getEndpointName()); useEffect(() => { sanitizeOperation.resetResults(); @@ -32,16 +30,13 @@ const Sanitize = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleSanitize = async () => { try { - await sanitizeOperation.executeOperation( - sanitizeParams.parameters, - selectedFiles, - ); + await sanitizeOperation.executeOperation(sanitizeParams.parameters, selectedFiles); if (sanitizeOperation.files && onComplete) { onComplete(sanitizeOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : t('sanitize.error.generic', 'Sanitization failed')); + onError(error instanceof Error ? error.message : t("sanitize.error.generic", "Sanitization failed")); } } }; @@ -49,13 +44,13 @@ const Sanitize = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleSettingsReset = () => { sanitizeOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('sanitize'); + setCurrentMode("sanitize"); }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'sanitize'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "sanitize"); + setCurrentMode("viewer"); }; const hasFiles = selectedFiles.length > 0; @@ -64,37 +59,39 @@ const Sanitize = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const settingsCollapsed = !hasFiles || hasResults; return createToolFlow({ - files: { - selectedFiles, - isCollapsed: filesCollapsed, - placeholder: t('sanitize.files.placeholder', 'Select a PDF file in the main view to get started') - }, - steps: [{ - title: t('sanitize.steps.settings', 'Settings'), - isCollapsed: settingsCollapsed, - onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, - content: ( - - ) - }], - executeButton: { - text: t("sanitize.submit", "Sanitize PDF"), - isVisible: !hasResults, - loadingText: t("loading"), - onClick: handleSanitize, - disabled: !sanitizeParams.validateParameters() || !hasFiles || !endpointEnabled - }, - review: { - isVisible: hasResults, - operation: sanitizeOperation, - title: t("sanitize.sanitizationResults", "Sanitization Results"), - onFileClick: handleThumbnailClick - } - }); -} + files: { + selectedFiles, + isCollapsed: filesCollapsed, + placeholder: t("sanitize.files.placeholder", "Select a PDF file in the main view to get started"), + }, + steps: [ + { + title: t("sanitize.steps.settings", "Settings"), + isCollapsed: settingsCollapsed, + onCollapsedClick: settingsCollapsed ? handleSettingsReset : undefined, + content: ( + + ), + }, + ], + executeButton: { + text: t("sanitize.submit", "Sanitize PDF"), + isVisible: !hasResults, + loadingText: t("loading"), + onClick: handleSanitize, + disabled: !sanitizeParams.validateParameters() || !hasFiles || !endpointEnabled, + }, + review: { + isVisible: hasResults, + operation: sanitizeOperation, + title: t("sanitize.sanitizationResults", "Sanitization Results"), + onFileClick: handleThumbnailClick, + }, + }); +}; export default Sanitize; diff --git a/frontend/src/tools/Split.tsx b/frontend/src/tools/Split.tsx index 495d315dc..f0e35dfb0 100644 --- a/frontend/src/tools/Split.tsx +++ b/frontend/src/tools/Split.tsx @@ -20,9 +20,7 @@ const Split = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const splitOperation = useSplitOperation(); // Endpoint validation - const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled( - splitParams.getEndpointName() - ); + const { enabled: endpointEnabled, loading: endpointLoading } = useEndpointEnabled(splitParams.getEndpointName()); useEffect(() => { splitOperation.resetResults(); @@ -31,30 +29,27 @@ const Split = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const handleSplit = async () => { try { - await splitOperation.executeOperation( - splitParams.parameters, - selectedFiles - ); + await splitOperation.executeOperation(splitParams.parameters, selectedFiles); if (splitOperation.files && onComplete) { onComplete(splitOperation.files); } } catch (error) { if (onError) { - onError(error instanceof Error ? error.message : 'Split operation failed'); + onError(error instanceof Error ? error.message : "Split operation failed"); } } }; const handleThumbnailClick = (file: File) => { onPreviewFile?.(file); - sessionStorage.setItem('previousMode', 'split'); - setCurrentMode('viewer'); + sessionStorage.setItem("previousMode", "split"); + setCurrentMode("viewer"); }; const handleSettingsReset = () => { splitOperation.resetResults(); onPreviewFile?.(null); - setCurrentMode('split'); + setCurrentMode("split"); }; const hasFiles = selectedFiles.length > 0; @@ -63,37 +58,39 @@ const Split = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => { const settingsCollapsed = !hasFiles || hasResults; return createToolFlow({ - files: { - selectedFiles, - isCollapsed: filesCollapsed, - placeholder: "Select a PDF file in the main view to get started" - }, - steps: [{ - title: "Settings", - isCollapsed: settingsCollapsed, - onCollapsedClick: hasResults ? handleSettingsReset : undefined, - content: ( - - ) - }], - executeButton: { - text: t("split.submit", "Split PDF"), - loadingText: t("loading"), - onClick: handleSplit, - isVisible: !hasResults, - disabled: !splitParams.validateParameters() || !hasFiles || !endpointEnabled - }, - review: { - isVisible: hasResults, - operation: splitOperation, - title: "Split Results", - onFileClick: handleThumbnailClick - } - }); -} + files: { + selectedFiles, + isCollapsed: filesCollapsed, + placeholder: "Select a PDF file in the main view to get started", + }, + steps: [ + { + title: "Settings", + isCollapsed: settingsCollapsed, + onCollapsedClick: hasResults ? handleSettingsReset : undefined, + content: ( + + ), + }, + ], + executeButton: { + text: t("split.submit", "Split PDF"), + loadingText: t("loading"), + onClick: handleSplit, + isVisible: !hasResults, + disabled: !splitParams.validateParameters() || !hasFiles || !endpointEnabled, + }, + review: { + isVisible: hasResults, + operation: splitOperation, + title: "Split Results", + onFileClick: handleThumbnailClick, + }, + }); +}; export default Split; diff --git a/frontend/src/tools/SwaggerUI.tsx b/frontend/src/tools/SwaggerUI.tsx index 0712b6068..20d67f496 100644 --- a/frontend/src/tools/SwaggerUI.tsx +++ b/frontend/src/tools/SwaggerUI.tsx @@ -1,18 +1,23 @@ -import React, { useEffect } from 'react'; -import { BaseToolProps } from '../types/tool'; +import React, { useEffect } from "react"; +import { BaseToolProps } from "../types/tool"; const SwaggerUI: React.FC = () => { useEffect(() => { // Redirect to Swagger UI - window.open('/swagger-ui/5.21.0/index.html', '_blank'); + window.open("/swagger-ui/5.21.0/index.html", "_blank"); }, []); return ( -
+

Opening Swagger UI in a new tab...

-

If it didn't open automatically, click here

+

+ If it didn't open automatically,{" "} + + click here + +

); }; -export default SwaggerUI; \ No newline at end of file +export default SwaggerUI;