mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-09-18 09:29:24 +00:00
Fix automations
This commit is contained in:
parent
06dbe8cc06
commit
a5c0b0ca04
@ -1,6 +1,6 @@
|
|||||||
import { Stack, Divider, Text } from "@mantine/core";
|
import { Stack, Divider, Text } from "@mantine/core";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { ChangeMetadataParameters } from "../../../hooks/tools/changeMetadata/useChangeMetadataParameters";
|
import { ChangeMetadataParameters, createCustomMetadataFunctions } from "../../../hooks/tools/changeMetadata/useChangeMetadataParameters";
|
||||||
import { useMetadataExtraction } from "../../../hooks/tools/changeMetadata/useMetadataExtraction";
|
import { useMetadataExtraction } from "../../../hooks/tools/changeMetadata/useMetadataExtraction";
|
||||||
import DeleteAllStep from "./steps/DeleteAllStep";
|
import DeleteAllStep from "./steps/DeleteAllStep";
|
||||||
import StandardMetadataStep from "./steps/StandardMetadataStep";
|
import StandardMetadataStep from "./steps/StandardMetadataStep";
|
||||||
@ -11,21 +11,21 @@ interface ChangeMetadataSingleStepProps {
|
|||||||
parameters: ChangeMetadataParameters;
|
parameters: ChangeMetadataParameters;
|
||||||
onParameterChange: <K extends keyof ChangeMetadataParameters>(key: K, value: ChangeMetadataParameters[K]) => void;
|
onParameterChange: <K extends keyof ChangeMetadataParameters>(key: K, value: ChangeMetadataParameters[K]) => void;
|
||||||
disabled?: boolean;
|
disabled?: boolean;
|
||||||
addCustomMetadata: (key?: string, value?: string) => void;
|
|
||||||
removeCustomMetadata: (id: string) => void;
|
|
||||||
updateCustomMetadata: (id: string, key: string, value: string) => void;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const ChangeMetadataSingleStep = ({
|
const ChangeMetadataSingleStep = ({
|
||||||
parameters,
|
parameters,
|
||||||
onParameterChange,
|
onParameterChange,
|
||||||
disabled = false,
|
disabled = false
|
||||||
addCustomMetadata,
|
|
||||||
removeCustomMetadata,
|
|
||||||
updateCustomMetadata
|
|
||||||
}: ChangeMetadataSingleStepProps) => {
|
}: ChangeMetadataSingleStepProps) => {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
// Get custom metadata functions using the utility
|
||||||
|
const { addCustomMetadata, removeCustomMetadata, updateCustomMetadata } = createCustomMetadataFunctions(
|
||||||
|
parameters,
|
||||||
|
onParameterChange
|
||||||
|
);
|
||||||
|
|
||||||
// Extract metadata from uploaded files
|
// Extract metadata from uploaded files
|
||||||
const { isExtractingMetadata } = useMetadataExtraction({
|
const { isExtractingMetadata } = useMetadataExtraction({
|
||||||
updateParameter: onParameterChange,
|
updateParameter: onParameterChange,
|
||||||
|
@ -42,6 +42,45 @@ export const defaultParameters: ChangeMetadataParameters = {
|
|||||||
// Global counter for custom metadata IDs
|
// Global counter for custom metadata IDs
|
||||||
let customMetadataIdCounter = 1;
|
let customMetadataIdCounter = 1;
|
||||||
|
|
||||||
|
// Utility functions that can work with external parameters
|
||||||
|
export const createCustomMetadataFunctions = (
|
||||||
|
parameters: ChangeMetadataParameters,
|
||||||
|
onParameterChange: <K extends keyof ChangeMetadataParameters>(key: K, value: ChangeMetadataParameters[K]) => void
|
||||||
|
) => {
|
||||||
|
const addCustomMetadata = (key: string = '', value: string = '') => {
|
||||||
|
const newEntry: CustomMetadataEntry = {
|
||||||
|
key,
|
||||||
|
value,
|
||||||
|
id: `custom${customMetadataIdCounter++}`,
|
||||||
|
};
|
||||||
|
|
||||||
|
onParameterChange('customMetadata', [
|
||||||
|
...parameters.customMetadata,
|
||||||
|
newEntry,
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
|
const removeCustomMetadata = (id: string) => {
|
||||||
|
onParameterChange('customMetadata',
|
||||||
|
parameters.customMetadata.filter(entry => entry.id !== id)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
const updateCustomMetadata = (id: string, key: string, value: string) => {
|
||||||
|
onParameterChange('customMetadata',
|
||||||
|
parameters.customMetadata.map(entry =>
|
||||||
|
entry.id === id ? { ...entry, key, value } : entry
|
||||||
|
)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
addCustomMetadata,
|
||||||
|
removeCustomMetadata,
|
||||||
|
updateCustomMetadata
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
// Validation function
|
// Validation function
|
||||||
const validateParameters = (params: ChangeMetadataParameters): boolean => {
|
const validateParameters = (params: ChangeMetadataParameters): boolean => {
|
||||||
// If deleteAll is true, no other validation needed
|
// If deleteAll is true, no other validation needed
|
||||||
@ -82,32 +121,11 @@ export const useChangeMetadataParameters = (): ChangeMetadataParametersHook => {
|
|||||||
validateFn: validateParameters,
|
validateFn: validateParameters,
|
||||||
});
|
});
|
||||||
|
|
||||||
const addCustomMetadata = (key: string = '', value: string = '') => {
|
// Use the utility functions with the hook's parameters and updateParameter
|
||||||
const newEntry: CustomMetadataEntry = {
|
const { addCustomMetadata, removeCustomMetadata, updateCustomMetadata } = createCustomMetadataFunctions(
|
||||||
key,
|
base.parameters,
|
||||||
value,
|
base.updateParameter,
|
||||||
id: `custom${customMetadataIdCounter++}`,
|
|
||||||
};
|
|
||||||
|
|
||||||
base.updateParameter('customMetadata', [
|
|
||||||
...base.parameters.customMetadata,
|
|
||||||
newEntry,
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
|
|
||||||
const removeCustomMetadata = (id: string) => {
|
|
||||||
base.updateParameter('customMetadata',
|
|
||||||
base.parameters.customMetadata.filter(entry => entry.id !== id)
|
|
||||||
);
|
);
|
||||||
};
|
|
||||||
|
|
||||||
const updateCustomMetadata = (id: string, key: string, value: string) => {
|
|
||||||
base.updateParameter('customMetadata',
|
|
||||||
base.parameters.customMetadata.map(entry =>
|
|
||||||
entry.id === id ? { ...entry, key, value } : entry
|
|
||||||
)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
...base,
|
...base,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user