mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-08-05 12:05:22 +00:00
Merge fixes
This commit is contained in:
parent
a8b370fd52
commit
fa7dc1234a
@ -2,6 +2,7 @@ import React, { useState, useCallback, useMemo, useEffect } from 'react';
|
|||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import ContentCutIcon from "@mui/icons-material/ContentCut";
|
import ContentCutIcon from "@mui/icons-material/ContentCut";
|
||||||
import ZoomInMapIcon from "@mui/icons-material/ZoomInMap";
|
import ZoomInMapIcon from "@mui/icons-material/ZoomInMap";
|
||||||
|
import SwapHorizIcon from "@mui/icons-material/SwapHoriz";
|
||||||
import { useMultipleEndpointsEnabled } from "./useEndpointConfig";
|
import { useMultipleEndpointsEnabled } from "./useEndpointConfig";
|
||||||
import { Tool, ToolDefinition, BaseToolProps, ToolRegistry } from "../types/tool";
|
import { Tool, ToolDefinition, BaseToolProps, ToolRegistry } from "../types/tool";
|
||||||
|
|
||||||
@ -26,6 +27,15 @@ const toolDefinitions: Record<string, ToolDefinition> = {
|
|||||||
description: "Reduce PDF file size",
|
description: "Reduce PDF file size",
|
||||||
endpoints: ["compress-pdf"]
|
endpoints: ["compress-pdf"]
|
||||||
},
|
},
|
||||||
|
convert: {
|
||||||
|
id: "convert",
|
||||||
|
icon: <SwapHorizIcon />,
|
||||||
|
component: React.lazy(() => import("../tools/Convert")),
|
||||||
|
maxFiles: -1,
|
||||||
|
category: "manipulation",
|
||||||
|
description: "Change to and from PDF and other formats",
|
||||||
|
endpoints: ["pdf-to-img", "img-to-pdf", "pdf-to-word", "pdf-to-presentation", "pdf-to-text", "pdf-to-html", "pdf-to-xml", "html-to-pdf", "markdown-to-pdf", "file-to-pdf"]
|
||||||
|
},
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import { useTranslation } from "react-i18next";
|
|||||||
import DownloadIcon from "@mui/icons-material/Download";
|
import DownloadIcon from "@mui/icons-material/Download";
|
||||||
import { useEndpointEnabled } from "../hooks/useEndpointConfig";
|
import { useEndpointEnabled } from "../hooks/useEndpointConfig";
|
||||||
import { useFileContext } from "../contexts/FileContext";
|
import { useFileContext } from "../contexts/FileContext";
|
||||||
|
import { useToolFileSelection } from "../contexts/FileSelectionContext";
|
||||||
|
|
||||||
import ToolStep, { ToolStepContainer } from "../components/tools/shared/ToolStep";
|
import ToolStep, { ToolStepContainer } from "../components/tools/shared/ToolStep";
|
||||||
import OperationButton from "../components/tools/shared/OperationButton";
|
import OperationButton from "../components/tools/shared/OperationButton";
|
||||||
@ -15,15 +16,12 @@ import ConvertSettings from "../components/tools/convert/ConvertSettings";
|
|||||||
|
|
||||||
import { useConvertParameters } from "../hooks/tools/convert/useConvertParameters";
|
import { useConvertParameters } from "../hooks/tools/convert/useConvertParameters";
|
||||||
import { useConvertOperation } from "../hooks/tools/convert/useConvertOperation";
|
import { useConvertOperation } from "../hooks/tools/convert/useConvertOperation";
|
||||||
|
import { BaseToolProps } from "../types/tool";
|
||||||
|
|
||||||
interface ConvertProps {
|
const Convert = ({ onPreviewFile, onComplete, onError }: BaseToolProps) => {
|
||||||
selectedFiles?: File[];
|
|
||||||
onPreviewFile?: (file: File | null) => void;
|
|
||||||
}
|
|
||||||
|
|
||||||
const Convert = ({ selectedFiles = [], onPreviewFile }: ConvertProps) => {
|
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const { setCurrentMode } = useFileContext();
|
const { setCurrentMode } = useFileContext();
|
||||||
|
const { selectedFiles } = useToolFileSelection();
|
||||||
|
|
||||||
const convertParams = useConvertParameters();
|
const convertParams = useConvertParameters();
|
||||||
const convertOperation = useConvertOperation();
|
const convertOperation = useConvertOperation();
|
||||||
@ -50,10 +48,19 @@ const Convert = ({ selectedFiles = [], onPreviewFile }: ConvertProps) => {
|
|||||||
}, [convertParams.parameters, selectedFiles]);
|
}, [convertParams.parameters, selectedFiles]);
|
||||||
|
|
||||||
const handleConvert = async () => {
|
const handleConvert = async () => {
|
||||||
await convertOperation.executeOperation(
|
try {
|
||||||
convertParams.parameters,
|
await convertOperation.executeOperation(
|
||||||
selectedFiles
|
convertParams.parameters,
|
||||||
);
|
selectedFiles
|
||||||
|
);
|
||||||
|
if (convertOperation.files && onComplete) {
|
||||||
|
onComplete(convertOperation.files);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
if (onError) {
|
||||||
|
onError(error instanceof Error ? error.message : 'Convert operation failed');
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleThumbnailClick = (file: File) => {
|
const handleThumbnailClick = (file: File) => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user