2025-06-05 21:59:18 +01:00
|
|
|
import React from "react";
|
2025-06-19 22:41:05 +01:00
|
|
|
import { FileWithUrl } from "../../types/file";
|
2025-06-05 21:59:18 +01:00
|
|
|
|
|
|
|
interface ToolRendererProps {
|
|
|
|
selectedToolKey: string;
|
|
|
|
selectedTool: any;
|
|
|
|
pdfFile: any;
|
|
|
|
files: FileWithUrl[];
|
|
|
|
downloadUrl: string | null;
|
|
|
|
setDownloadUrl: (url: string | null) => void;
|
|
|
|
toolParams: any;
|
|
|
|
updateParams: (params: any) => void;
|
|
|
|
}
|
|
|
|
|
2025-06-19 19:47:44 +01:00
|
|
|
const ToolRenderer = ({
|
2025-06-05 21:59:18 +01:00
|
|
|
selectedToolKey,
|
|
|
|
selectedTool,
|
|
|
|
pdfFile,
|
|
|
|
files,
|
|
|
|
downloadUrl,
|
|
|
|
setDownloadUrl,
|
|
|
|
toolParams,
|
|
|
|
updateParams,
|
2025-06-19 19:47:44 +01:00
|
|
|
}: ToolRendererProps) => {
|
2025-06-05 21:59:18 +01:00
|
|
|
if (!selectedTool || !selectedTool.component) {
|
|
|
|
return <div>Tool not found</div>;
|
|
|
|
}
|
|
|
|
|
|
|
|
const ToolComponent = selectedTool.component;
|
|
|
|
|
|
|
|
// Pass tool-specific props
|
|
|
|
switch (selectedToolKey) {
|
|
|
|
case "split":
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
file={pdfFile}
|
|
|
|
downloadUrl={downloadUrl}
|
|
|
|
setDownloadUrl={setDownloadUrl}
|
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
case "compress":
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
files={files}
|
|
|
|
setDownloadUrl={setDownloadUrl}
|
|
|
|
setLoading={(loading: boolean) => {}} // TODO: Add loading state
|
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
case "merge":
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
files={files}
|
|
|
|
setDownloadUrl={setDownloadUrl}
|
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
default:
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
files={files}
|
|
|
|
setDownloadUrl={setDownloadUrl}
|
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
export default ToolRenderer;
|