Compare commits

...

3 Commits

Author SHA1 Message Date
EthanHealy01
ad7cd6a417 lint 2025-09-16 18:12:52 +01:00
EthanHealy01
2302949856 change requests 2025-09-16 17:39:46 +01:00
EthanHealy01
792140a36f change requests 2025-09-16 17:36:54 +01:00
4 changed files with 3 additions and 37 deletions

View File

@ -19,7 +19,7 @@ const RemoveBlanksSettings = ({ parameters, onParameterChange, disabled = false
label={t('removeBlanks.threshold.label', 'Pixel Whiteness Threshold')}
value={parameters.threshold}
onChange={(v) => onParameterChange('threshold', typeof v === 'string' ? Number(v) : v)}
unit={t('removeBlanks.threshold.unit', '')}
unit=''
min={0}
max={255}
disabled={disabled}
@ -31,7 +31,7 @@ const RemoveBlanksSettings = ({ parameters, onParameterChange, disabled = false
label={t('removeBlanks.whitePercent.label', 'White Percent')}
value={parameters.whitePercent}
onChange={(v) => onParameterChange('whitePercent', typeof v === 'string' ? Number(v) : v)}
unit={t('removeBlanks.whitePercent.unit', '%')}
unit='%'
min={0.1}
max={100}
disabled={disabled}

View File

@ -19,7 +19,6 @@ export const removeBlanksOperationConfig = {
buildFormData: buildRemoveBlanksFormData,
operationType: 'remove-blanks',
endpoint: '/api/v1/misc/remove-blanks',
filePrefix: 'noblank_',
defaultParameters,
} as const satisfies ToolOperationConfig<RemoveBlanksParameters>;
@ -35,7 +34,6 @@ export const useRemoveBlanksOperation = () => {
return useToolOperation<RemoveBlanksParameters>({
...removeBlanksOperationConfig,
responseHandler,
filePrefix: t('removeBlanks.filenamePrefix', 'noblank') + '_',
getErrorMessage: createStandardErrorHandler(
t('removeBlanks.error.failed', 'Failed to remove blank pages')
)

View File

@ -1,4 +1,3 @@
import { useCallback } from 'react';
import { useTranslation } from 'react-i18next';
import { ToolType, useToolOperation, ToolOperationConfig } from '../shared/useToolOperation';
import { createStandardErrorHandler } from '../../../utils/toolErrorHandler';
@ -17,24 +16,14 @@ export const removePagesOperationConfig = {
buildFormData: buildRemovePagesFormData,
operationType: 'remove-pages',
endpoint: '/api/v1/general/remove-pages',
filePrefix: 'removed_pages_',
defaultParameters,
} as const satisfies ToolOperationConfig<RemovePagesParameters>;
export const useRemovePagesOperation = () => {
const { t } = useTranslation();
// const { extractZipFiles } = useToolResources();
const responseHandler = useCallback(async (blob: Blob, originalFiles: File[]): Promise<File[]> => {
// Backend returns a PDF for remove-pages
const base = originalFiles[0]?.name?.replace(/\.[^.]+$/, '') || 'document';
return [new File([blob], `removed_pages_${base}.pdf`, { type: 'application/pdf' })];
}, []);
return useToolOperation<RemovePagesParameters>({
...removePagesOperationConfig,
responseHandler,
filePrefix: t('removePages.filenamePrefix', 'removed_pages') + '_',
getErrorMessage: createStandardErrorHandler(
t('removePages.error.failed', 'Failed to remove pages')
)

View File

@ -1,4 +1,3 @@
import { useState, useEffect } from "react";
import { useTranslation } from "react-i18next";
import { createToolFlow } from "../components/tools/shared/createToolFlow";
import { BaseToolProps, ToolComponent } from "../types/tool";
@ -19,23 +18,6 @@ const RemoveBlanks = (props: BaseToolProps) => {
props
);
// Step expansion state management
const [expandedStep, setExpandedStep] = useState<"files" | "settings" | null>("files");
// Auto-expand settings when files are selected
useEffect(() => {
if (base.selectedFiles.length > 0 && expandedStep === "files") {
setExpandedStep("settings");
}
}, [base.selectedFiles.length, expandedStep]);
// Collapse all steps when results appear
useEffect(() => {
if (base.hasResults) {
setExpandedStep(null);
}
}, [base.hasResults]);
const settingsContent = (
<RemoveBlanksSettings
parameters={base.params.parameters}
@ -47,9 +29,6 @@ const RemoveBlanks = (props: BaseToolProps) => {
const handleSettingsClick = () => {
if (base.hasResults) {
base.handleSettingsReset();
} else {
if (!base.hasFiles) return;
setExpandedStep(expandedStep === "settings" ? null : "settings");
}
};
@ -61,7 +40,7 @@ const RemoveBlanks = (props: BaseToolProps) => {
steps: [
{
title: t("removeBlanks.settings.title", "Settings"),
isCollapsed: expandedStep !== "settings",
isCollapsed: base.settingsCollapsed,
onCollapsedClick: handleSettingsClick,
content: settingsContent,
tooltip: tooltipContent,