2025-06-19 22:41:05 +01:00
|
|
|
import { FileWithUrl } from "../../types/file";
|
2025-07-16 17:53:50 +01:00
|
|
|
import { useToolManagement } from "../../hooks/useToolManagement";
|
2025-06-05 21:59:18 +01:00
|
|
|
|
|
|
|
interface ToolRendererProps {
|
|
|
|
selectedToolKey: string;
|
|
|
|
pdfFile: any;
|
|
|
|
files: FileWithUrl[];
|
|
|
|
toolParams: any;
|
|
|
|
updateParams: (params: any) => void;
|
2025-07-16 17:53:50 +01:00
|
|
|
toolSelectedFiles?: File[];
|
|
|
|
onPreviewFile?: (file: File | null) => void;
|
2025-06-05 21:59:18 +01:00
|
|
|
}
|
|
|
|
|
2025-06-19 19:47:44 +01:00
|
|
|
const ToolRenderer = ({
|
2025-06-05 21:59:18 +01:00
|
|
|
selectedToolKey,
|
2025-07-16 17:53:50 +01:00
|
|
|
files,
|
2025-06-05 21:59:18 +01:00
|
|
|
toolParams,
|
|
|
|
updateParams,
|
2025-07-16 17:53:50 +01:00
|
|
|
toolSelectedFiles = [],
|
|
|
|
onPreviewFile,
|
2025-06-19 19:47:44 +01:00
|
|
|
}: ToolRendererProps) => {
|
2025-07-16 17:53:50 +01:00
|
|
|
// Get the tool from registry
|
|
|
|
const { toolRegistry } = useToolManagement();
|
|
|
|
const selectedTool = toolRegistry[selectedToolKey];
|
|
|
|
|
2025-06-05 21:59:18 +01:00
|
|
|
if (!selectedTool || !selectedTool.component) {
|
2025-07-16 17:53:50 +01:00
|
|
|
return <div>Tool not found: {selectedToolKey}</div>;
|
2025-06-05 21:59:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
const ToolComponent = selectedTool.component;
|
|
|
|
|
|
|
|
// Pass tool-specific props
|
|
|
|
switch (selectedToolKey) {
|
|
|
|
case "split":
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
2025-07-16 17:53:50 +01:00
|
|
|
selectedFiles={toolSelectedFiles}
|
|
|
|
onPreviewFile={onPreviewFile}
|
2025-06-05 21:59:18 +01:00
|
|
|
/>
|
|
|
|
);
|
|
|
|
case "compress":
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
files={files}
|
2025-07-16 17:53:50 +01:00
|
|
|
setLoading={(loading: boolean) => {}}
|
2025-06-05 21:59:18 +01:00
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
case "merge":
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
files={files}
|
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
default:
|
|
|
|
return (
|
|
|
|
<ToolComponent
|
|
|
|
files={files}
|
|
|
|
params={toolParams}
|
|
|
|
updateParams={updateParams}
|
|
|
|
/>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2025-07-16 17:53:50 +01:00
|
|
|
export default ToolRenderer;
|