Use base parameters

This commit is contained in:
James Brunton 2025-08-20 11:07:19 +01:00
parent 29176b5034
commit dd20a3c0a3
2 changed files with 14 additions and 30 deletions

View File

@ -1,12 +1,12 @@
import { describe, expect, test } from 'vitest'; import { describe, expect, test } from 'vitest';
import { renderHook, act } from '@testing-library/react'; import { renderHook, act } from '@testing-library/react';
import { useMergeParameters, defaultMergeParameters } from './useMergeParameters'; import { useMergeParameters, defaultParameters } from './useMergeParameters';
describe('useMergeParameters', () => { describe('useMergeParameters', () => {
test('should initialize with default parameters', () => { test('should initialize with default parameters', () => {
const { result } = renderHook(() => useMergeParameters()); const { result } = renderHook(() => useMergeParameters());
expect(result.current.parameters).toStrictEqual(defaultMergeParameters); expect(result.current.parameters).toStrictEqual(defaultParameters);
}); });
test.each([ test.each([
@ -41,7 +41,7 @@ describe('useMergeParameters', () => {
result.current.resetParameters(); result.current.resetParameters();
}); });
expect(result.current.parameters).toStrictEqual(defaultMergeParameters); expect(result.current.parameters).toStrictEqual(defaultParameters);
}); });
test('should validate parameters correctly - always returns true', () => { test('should validate parameters correctly - always returns true', () => {

View File

@ -1,37 +1,21 @@
import { useState, useCallback } from 'react'; import { BaseParameters } from '../../../types/parameters';
import { BaseParametersHook, useBaseParameters } from '../shared/useBaseParameters';
export interface MergeParameters { export interface MergeParameters extends BaseParameters {
removeDigitalSignature: boolean; removeDigitalSignature: boolean;
generateTableOfContents: boolean; generateTableOfContents: boolean;
} };
export const defaultMergeParameters: MergeParameters = { export const defaultParameters: MergeParameters = {
removeDigitalSignature: false, removeDigitalSignature: false,
generateTableOfContents: false, generateTableOfContents: false,
}; };
export const useMergeParameters = () => { export type MergeParametersHook = BaseParametersHook<MergeParameters>;
const [parameters, setParameters] = useState<MergeParameters>(defaultMergeParameters);
const updateParameter = useCallback(<K extends keyof MergeParameters>( export const useMergeParameters = (): MergeParametersHook => {
key: K, return useBaseParameters({
value: MergeParameters[K] defaultParameters,
) => { endpointName: "merge-pdfs",
setParameters(prev => ({ ...prev, [key]: value })); });
}, []);
const validateParameters = useCallback((): boolean => {
return true; // Merge has no required parameters
}, []);
const resetParameters = useCallback(() => {
setParameters(defaultMergeParameters);
}, []);
return {
parameters,
updateParameter,
validateParameters,
resetParameters,
};
}; };