diff --git a/packages/ove/demo/src/EditorDemo/AddEditFeatureOverrideExample.js b/packages/ove/demo/src/EditorDemo/AddEditFeatureOverrideExample.js index 248f326e..031d6296 100644 --- a/packages/ove/demo/src/EditorDemo/AddEditFeatureOverrideExample.js +++ b/packages/ove/demo/src/EditorDemo/AddEditFeatureOverrideExample.js @@ -126,7 +126,11 @@ export class AddOrEditFeatureDialog extends React.Component { sequenceData = { sequence: "" }, handleSubmit, locations, - upsertFeature + upsertFeature, + start, + end, + forward, + type } = this.props; const sequenceLength = sequenceData.sequence.length; return ( @@ -158,12 +162,12 @@ export class AddOrEditFeatureDialog extends React.Component { // format={value => (value ? "true" : "false")} name="forward" label="Strand:" - defaultValue={true} + defaultValue={forward ?? true} /> { return { label: ( @@ -198,7 +202,7 @@ export class AddOrEditFeatureDialog extends React.Component { @@ -132,7 +135,10 @@ function PCRTool(props) { inlineLabel tooltipError options={reversePrimers} - defaultValue={reversePrimers[0] ? reversePrimers[0].value : undefined} + defaultValue={ + reversePrimer ?? + (reversePrimers[0] ? reversePrimers[0].value : undefined) + } name="reversePrimer" label="Reverse Primer:" /> diff --git a/packages/ove/src/helperComponents/AddOrEditAnnotationDialog/index.js b/packages/ove/src/helperComponents/AddOrEditAnnotationDialog/index.js index 96ae5a66..798cc393 100644 --- a/packages/ove/src/helperComponents/AddOrEditAnnotationDialog/index.js +++ b/packages/ove/src/helperComponents/AddOrEditAnnotationDialog/index.js @@ -190,7 +190,7 @@ class AddOrEditAnnotationDialog extends React.Component { sequenceData = { sequence: "" }, handleSubmit, beforeAnnotationCreate, - renderTypes, + RenderTypes, renderTags, RenderBases, allowMultipleFeatureDirections, @@ -210,6 +210,7 @@ class AddOrEditAnnotationDialog extends React.Component { overlapsSelf, start, end, + type, readOnly, getAdditionalEditAnnotationComps, advancedOptions, @@ -370,7 +371,9 @@ class AddOrEditAnnotationDialog extends React.Component { /> ))} - {renderTypes || null} + {RenderTypes && ( + + )} {renderTags || null} {/* {allowPrimerBasesToBeEdited && RenderBases ? null : !renderLocations || */} @@ -387,7 +390,7 @@ class AddOrEditAnnotationDialog extends React.Component { format={this.formatStart} parse={this.parseStart} tooltipError - defaultValue={1} + defaultValue={start ?? 1} min={1} max={sequenceLength || 1} name="start" @@ -401,7 +404,7 @@ class AddOrEditAnnotationDialog extends React.Component { parse={this.parseEnd} inlineLabel tooltipError - defaultValue={sequenceData.isProtein ? 3 : 1} + defaultValue={end ?? (sequenceData.isProtein ? 3 : 1)} min={1} max={sequenceLength || 1} name="end" @@ -569,6 +572,7 @@ export default ({ formName, getProps, dialogProps }) => { tgFormValues( "start", "end", + "type", "overlapsSelf", "locations", "bases", diff --git a/packages/ove/src/helperComponents/AddOrEditFeatureDialog/index.js b/packages/ove/src/helperComponents/AddOrEditFeatureDialog/index.js index 514d4ea4..e1d9ae20 100644 --- a/packages/ove/src/helperComponents/AddOrEditFeatureDialog/index.js +++ b/packages/ove/src/helperComponents/AddOrEditFeatureDialog/index.js @@ -7,13 +7,13 @@ import { import AddOrEditAnnotationDialog from "../AddOrEditAnnotationDialog"; import { ReactSelectField } from "@teselagen/ui"; -const renderTypes = ({ readOnly }) => ( +const RenderTypes = ({ readOnly, type }) => ( { + defaultValue={type ?? "misc_feature"} + options={getFeatureTypes().map(featureType => { return { label: (
( >
- {type} + {featureType}
), - value: type + value: featureType }; })} name="type" @@ -52,7 +54,7 @@ export default AddOrEditAnnotationDialog({ upsertAnnotation: props.upsertFeature, // renderLocations: true, //tnw enable this eventually for proteins renderLocations: !props.sequenceData.isProtein, - renderTypes: renderTypes({ readOnly: props.readOnly }), + RenderTypes, annotationTypePlural: "features" }) }); diff --git a/packages/ove/src/helperComponents/AddOrEditPartDialog/index.js b/packages/ove/src/helperComponents/AddOrEditPartDialog/index.js index 05be9e4f..6ae9bed4 100644 --- a/packages/ove/src/helperComponents/AddOrEditPartDialog/index.js +++ b/packages/ove/src/helperComponents/AddOrEditPartDialog/index.js @@ -9,12 +9,12 @@ import { import { getFeatureTypes } from "@teselagen/sequence-utils"; import { get } from "lodash-es"; -const renderTypes = ({ readOnly }) => ( +const RenderTypes = ({ readOnly, type }) => ( { return { label: type, @@ -88,7 +88,7 @@ export default AddOrEditAnnotationDialog({ advancedOptions: props.allowPartsToOverlapSelf ? renderAdvancedOptions({ readOnly: props.readOnly }) : undefined, - renderTypes: renderTypes({ readOnly: props.readOnly }), + RenderTypes, renderTags: props.allPartTags && getRenderTags({ diff --git a/packages/ove/src/helperComponents/AddOrEditPrimerDialog/index.js b/packages/ove/src/helperComponents/AddOrEditPrimerDialog/index.js index 3f3e9c81..b3a81d8d 100644 --- a/packages/ove/src/helperComponents/AddOrEditPrimerDialog/index.js +++ b/packages/ove/src/helperComponents/AddOrEditPrimerDialog/index.js @@ -194,7 +194,7 @@ const RenderBases = props => { label="Linked Oligo?" tooltipInfo={`Check this box to link this primer to an oligo in your Oligo Library. If the primer bases match exactly the bases of an existing oligo, it will be linked to that existing oligo. If the bases don't match, a new oligo will be created in the library.`} noMarginBottom - defaultValue={true} + defaultValue={useLinkedOligo ?? true} disabled={readOnly} > {useLinkedOligo && ( @@ -221,11 +221,7 @@ const RenderBases = props => { sequenceLength={sequenceLength} disabled={readOnly} {...props} - {...(defaultValue - ? { - defaultValue - } - : {})} + defaultValue={bases ?? defaultValue} name="bases" label={