diff --git a/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.tsx b/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.tsx index c2b7c93779..19213e46ab 100644 --- a/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.tsx +++ b/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaAccordion/RnaAccordion.tsx @@ -109,7 +109,7 @@ export const RnaAccordion = ({ libraryName, duplicatePreset, editPreset }) => { } else { setExpandedAccordion(rnaBuilderItem); const { sugarValidations, phosphateValidations, baseValidations } = - getValidations(newPreset); + getValidations(newPreset, isEditMode); dispatch(setSugarValidations(sugarValidations)); dispatch(setPhosphateValidations(phosphateValidations)); diff --git a/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor.tsx b/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor.tsx index 708dda27c0..6743eb9068 100644 --- a/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor.tsx +++ b/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditor.tsx @@ -31,10 +31,14 @@ import { selectIsEditMode, selectPresetFullName, setActiveRnaBuilderItem, + setBaseValidations, setIsEditMode, + setPhosphateValidations, + setSugarValidations, } from 'state/rna-builder'; import { scrollToElement } from 'helpers/dom'; import { selectIsSequenceEditInRNABuilderMode } from 'state/common'; +import { getValidations } from 'helpers/rnaValidations'; export const scrollToSelectedPreset = (presetName) => { scrollToElement(`[data-rna-preset-item-name="${presetName}"]`); @@ -66,6 +70,15 @@ export const RnaEditor = ({ duplicatePreset }) => { dispatch(setActiveRnaBuilderItem(RnaBuilderPresetsItem.Presets)); }, [activePreset]); + useEffect(() => { + const { sugarValidations, phosphateValidations, baseValidations } = + getValidations(activePreset, isEditMode); + + dispatch(setSugarValidations(sugarValidations)); + dispatch(setPhosphateValidations(phosphateValidations)); + dispatch(setBaseValidations(baseValidations)); + }, [isEditMode]); + const expandEditor = () => { setExpanded(!expanded); if (!activePreset?.nameInList) { diff --git a/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.tsx b/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.tsx index f3652284c3..1cf759f147 100644 --- a/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.tsx +++ b/packages/ketcher-macromolecules/src/components/monomerLibrary/RnaBuilder/RnaEditor/RnaEditorExpanded/RnaEditorExpanded.tsx @@ -225,7 +225,7 @@ export const RnaEditorExpanded = ({ dispatch(setActiveRnaBuilderItem(selectedGroup)); const { sugarValidations, phosphateValidations, baseValidations } = - getValidations(newPreset); + getValidations(newPreset, isEditMode); dispatch(setSugarValidations(sugarValidations)); dispatch(setPhosphateValidations(phosphateValidations)); diff --git a/packages/ketcher-macromolecules/src/helpers/rnaValidations.ts b/packages/ketcher-macromolecules/src/helpers/rnaValidations.ts index 1c5b39bba1..c369ad7e15 100644 --- a/packages/ketcher-macromolecules/src/helpers/rnaValidations.ts +++ b/packages/ketcher-macromolecules/src/helpers/rnaValidations.ts @@ -2,6 +2,7 @@ import { IRnaPreset } from 'components/monomerLibrary/RnaBuilder/types'; export const getValidations = ( newPreset: IRnaPreset, + isEditMode: boolean, ): { sugarValidations: string[]; phosphateValidations: string[]; @@ -11,6 +12,14 @@ export const getValidations = ( const phosphateValidations: string[] = []; const baseValidations: string[] = []; + if (!isEditMode) { + return { + sugarValidations, + phosphateValidations, + baseValidations, + }; + } + if (newPreset?.phosphate) { sugarValidations.push('R2'); }