# Description of Changes - Added the compression tool - Slightly adjusted the padding on split, compress and the parent sidebar component so things aren't so smushed - Future work will be to allow multi-select on files and to add further styling to the toolstep / sidebar component --- ## Checklist ### General - [ ] I have read the [Contribution Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md) - [ ] I have read the [Stirling-PDF Developer Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md) (if applicable) - [ ] I have read the [How to add new languages to Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md) (if applicable) - [ ] I have performed a self-review of my own code - [ ] My changes generate no new warnings ### Documentation - [ ] I have updated relevant docs on [Stirling-PDF's doc repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/) (if functionality has heavily changed) - [ ] I have read the section [Add New Translation Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags) (for new translation tags only) ### UI Changes (if applicable) - [ ] Screenshots or videos demonstrating the UI changes are attached (e.g., as comments or direct attachments in the PR) ### Testing (if applicable) - [ ] I have tested my changes locally. Refer to the [Testing Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing) for more details. --------- Co-authored-by: Ethan <ethan@MacBook-Pro.local> Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
68 lines
1.5 KiB
TypeScript
68 lines
1.5 KiB
TypeScript
import { FileWithUrl } from "../../types/file";
|
|
import { useToolManagement } from "../../hooks/useToolManagement";
|
|
|
|
interface ToolRendererProps {
|
|
selectedToolKey: string;
|
|
pdfFile: any;
|
|
files: FileWithUrl[];
|
|
toolParams: any;
|
|
updateParams: (params: any) => void;
|
|
toolSelectedFiles?: File[];
|
|
onPreviewFile?: (file: File | null) => void;
|
|
}
|
|
|
|
const ToolRenderer = ({
|
|
selectedToolKey,
|
|
files,
|
|
toolParams,
|
|
updateParams,
|
|
toolSelectedFiles = [],
|
|
onPreviewFile,
|
|
}: ToolRendererProps) => {
|
|
// Get the tool from registry
|
|
const { toolRegistry } = useToolManagement();
|
|
const selectedTool = toolRegistry[selectedToolKey];
|
|
|
|
if (!selectedTool || !selectedTool.component) {
|
|
return <div>Tool not found: {selectedToolKey}</div>;
|
|
}
|
|
|
|
const ToolComponent = selectedTool.component;
|
|
|
|
// Pass tool-specific props
|
|
switch (selectedToolKey) {
|
|
case "split":
|
|
return (
|
|
<ToolComponent
|
|
selectedFiles={toolSelectedFiles}
|
|
onPreviewFile={onPreviewFile}
|
|
/>
|
|
);
|
|
case "compress":
|
|
return (
|
|
<ToolComponent
|
|
selectedFiles={toolSelectedFiles}
|
|
onPreviewFile={onPreviewFile}
|
|
/>
|
|
);
|
|
case "merge":
|
|
return (
|
|
<ToolComponent
|
|
files={files}
|
|
params={toolParams}
|
|
updateParams={updateParams}
|
|
/>
|
|
);
|
|
default:
|
|
return (
|
|
<ToolComponent
|
|
files={files}
|
|
params={toolParams}
|
|
updateParams={updateParams}
|
|
/>
|
|
);
|
|
}
|
|
};
|
|
|
|
export default ToolRenderer;
|