From 0fd9d4e4986a09f7036a2c390083663f45cdff0a Mon Sep 17 00:00:00 2001 From: alec_dev Date: Thu, 19 Mar 2026 00:04:02 -0500 Subject: [PATCH 1/2] Preserve Agent Type when merging agents without auto-populate --- .../lib/components/Merging/autoMerge.ts | 14 ++++++++++++ .../js_src/lib/components/Merging/index.tsx | 22 +++++++++---------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/specifyweb/frontend/js_src/lib/components/Merging/autoMerge.ts b/specifyweb/frontend/js_src/lib/components/Merging/autoMerge.ts index 0c405b0cb38..480ffdca3cc 100644 --- a/specifyweb/frontend/js_src/lib/components/Merging/autoMerge.ts +++ b/specifyweb/frontend/js_src/lib/components/Merging/autoMerge.ts @@ -54,6 +54,20 @@ export function autoMerge( ); } +export async function buildInitialMergedResource( + table: SpecifyTable, + resources: RA>, + shouldAutoPopulate: boolean, + targetId?: number +): Promise> { + return (shouldAutoPopulate + ? await postMergeResource( + resources, + autoMerge(table, resources, false, targetId) + ) + : autoMerge(table, resources, true, targetId)) as SerializedResource; +} + /** * Sort from newest to oldest */ diff --git a/specifyweb/frontend/js_src/lib/components/Merging/index.tsx b/specifyweb/frontend/js_src/lib/components/Merging/index.tsx index 2c3f280a947..130d9d530fb 100644 --- a/specifyweb/frontend/js_src/lib/components/Merging/index.tsx +++ b/specifyweb/frontend/js_src/lib/components/Merging/index.tsx @@ -22,7 +22,6 @@ import { icons } from '../Atoms/Icons'; import { Link } from '../Atoms/Link'; import { Submit } from '../Atoms/Submit'; import { LoadingContext } from '../Core/Contexts'; -import { addMissingFields } from '../DataModel/addMissingFields'; import { runAllFieldChecks } from '../DataModel/businessRules'; import type { AnySchema, SerializedResource } from '../DataModel/helperTypes'; import type { SpecifyResource } from '../DataModel/legacyTypes'; @@ -35,7 +34,11 @@ import { Dialog, dialogClassNames } from '../Molecules/Dialog'; import { userPreferences } from '../Preferences/userPreferences'; import { formatUrl } from '../Router/queryString'; import { OverlayContext, OverlayLocation } from '../Router/Router'; -import { autoMerge, postMergeResource } from './autoMerge'; +import { + autoMerge, + buildInitialMergedResource, + postMergeResource, +} from './autoMerge'; import { CompareRecords } from './Compare'; import { recordMergingTableSpec } from './definitions'; import { InvalidMergeRecordsDialog } from './InvalidMergeRecords'; @@ -225,15 +228,12 @@ function Merging({ 'autoPopulate' ); - const mergedPayload = shouldAutoPopulate - ? await postMergeResource( - initialRecords.current, - autoMerge(table, initialRecords.current, false, target.id) - ) - : addMissingFields( - table.name, - {} as Partial> - ); + const mergedPayload = await buildInitialMergedResource( + table, + initialRecords.current, + shouldAutoPopulate, + target.id + ); const mergedResource = deserializeResource( mergedPayload as SerializedResource From 7fae15d1e237a3c4ac3b86f9f157b3d47a589aaf Mon Sep 17 00:00:00 2001 From: alec_dev Date: Thu, 19 Mar 2026 05:10:14 +0000 Subject: [PATCH 2/2] Lint code with ESLint and Prettier Triggered by 6c3a929bf43c2cc5eb43cc28c8941ca8d5d9d11e on branch refs/heads/issue-5072 --- specifyweb/frontend/js_src/lib/hooks/useValidation.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/specifyweb/frontend/js_src/lib/hooks/useValidation.tsx b/specifyweb/frontend/js_src/lib/hooks/useValidation.tsx index 511c3f97fa3..0bf10bd8848 100644 --- a/specifyweb/frontend/js_src/lib/hooks/useValidation.tsx +++ b/specifyweb/frontend/js_src/lib/hooks/useValidation.tsx @@ -2,7 +2,10 @@ import React from 'react'; import { InFormEditorContext } from '../components/FormEditor/Context'; import type { Input } from '../components/Forms/validationHelpers'; -import { hasNativeErrors, isInputTouched } from '../components/Forms/validationHelpers'; +import { + hasNativeErrors, + isInputTouched, +} from '../components/Forms/validationHelpers'; import { listen } from '../utils/events'; import type { RA } from '../utils/types';