Make "Delete all" checkbox remove remaining tool steps

This commit is contained in:
James Brunton 2025-09-12 17:00:58 +01:00
parent 2e68f2d062
commit 83d8553e38

View File

@ -63,26 +63,8 @@ const ChangeMetadata = (props: BaseToolProps) => {
setOpenStep(openStep === stepName ? MetadataStep.NONE : stepName); setOpenStep(openStep === stepName ? MetadataStep.NONE : stepName);
}; };
return createToolFlow({ // Create step objects
files: { const createStandardMetadataStep = () => ({
selectedFiles: base.selectedFiles,
isCollapsed: base.hasResults,
},
steps: [
{
title: t("changeMetadata.deleteAll.label", "Delete All Metadata"),
isCollapsed: getActualCollapsedState(MetadataStep.DELETE_ALL),
onCollapsedClick: () => handleStepToggle(MetadataStep.DELETE_ALL),
tooltip: deleteAllTips,
content: (
<DeleteAllStep
parameters={base.params.parameters}
onParameterChange={base.params.updateParameter}
disabled={base.endpointLoading || isExtractingMetadata}
/>
),
},
{
title: t("changeMetadata.standardFields.title", "Standard Metadata"), title: t("changeMetadata.standardFields.title", "Standard Metadata"),
isCollapsed: getActualCollapsedState(MetadataStep.STANDARD_METADATA), isCollapsed: getActualCollapsedState(MetadataStep.STANDARD_METADATA),
onCollapsedClick: () => handleStepToggle(MetadataStep.STANDARD_METADATA), onCollapsedClick: () => handleStepToggle(MetadataStep.STANDARD_METADATA),
@ -91,11 +73,12 @@ const ChangeMetadata = (props: BaseToolProps) => {
<StandardMetadataStep <StandardMetadataStep
parameters={base.params.parameters} parameters={base.params.parameters}
onParameterChange={base.params.updateParameter} onParameterChange={base.params.updateParameter}
disabled={base.endpointLoading || base.params.parameters.deleteAll || isExtractingMetadata} disabled={base.endpointLoading || isExtractingMetadata}
/> />
), ),
}, });
{
const createDocumentDatesStep = () => ({
title: t("changeMetadata.dates.title", "Document Dates"), title: t("changeMetadata.dates.title", "Document Dates"),
isCollapsed: getActualCollapsedState(MetadataStep.DOCUMENT_DATES), isCollapsed: getActualCollapsedState(MetadataStep.DOCUMENT_DATES),
onCollapsedClick: () => handleStepToggle(MetadataStep.DOCUMENT_DATES), onCollapsedClick: () => handleStepToggle(MetadataStep.DOCUMENT_DATES),
@ -104,11 +87,12 @@ const ChangeMetadata = (props: BaseToolProps) => {
<DocumentDatesStep <DocumentDatesStep
parameters={base.params.parameters} parameters={base.params.parameters}
onParameterChange={base.params.updateParameter} onParameterChange={base.params.updateParameter}
disabled={base.endpointLoading || base.params.parameters.deleteAll || isExtractingMetadata} disabled={base.endpointLoading || isExtractingMetadata}
/> />
), ),
}, });
{
const createAdvancedOptionsStep = () => ({
title: t("changeMetadata.advanced.title", "Advanced Options"), title: t("changeMetadata.advanced.title", "Advanced Options"),
isCollapsed: getActualCollapsedState(MetadataStep.ADVANCED_OPTIONS), isCollapsed: getActualCollapsedState(MetadataStep.ADVANCED_OPTIONS),
onCollapsedClick: () => handleStepToggle(MetadataStep.ADVANCED_OPTIONS), onCollapsedClick: () => handleStepToggle(MetadataStep.ADVANCED_OPTIONS),
@ -123,8 +107,43 @@ const ChangeMetadata = (props: BaseToolProps) => {
updateCustomMetadata={base.params.updateCustomMetadata} updateCustomMetadata={base.params.updateCustomMetadata}
/> />
), ),
});
// Build steps array based on deleteAll state
const buildSteps = () => {
const steps = [
{
title: t("changeMetadata.deleteAll.label", "Delete All Metadata"),
isCollapsed: getActualCollapsedState(MetadataStep.DELETE_ALL),
onCollapsedClick: () => handleStepToggle(MetadataStep.DELETE_ALL),
tooltip: deleteAllTips,
content: (
<DeleteAllStep
parameters={base.params.parameters}
onParameterChange={base.params.updateParameter}
disabled={base.endpointLoading || isExtractingMetadata}
/>
),
}, },
], ];
if (!base.params.parameters.deleteAll) {
steps.push(
createStandardMetadataStep(),
createDocumentDatesStep(),
createAdvancedOptionsStep()
);
}
return steps;
};
return createToolFlow({
files: {
selectedFiles: base.selectedFiles,
isCollapsed: base.hasResults,
},
steps: buildSteps(),
executeButton: { executeButton: {
text: t("changeMetadata.submit", "Update Metadata"), text: t("changeMetadata.submit", "Update Metadata"),
isVisible: !base.hasResults, isVisible: !base.hasResults,