Skip to content

Commit

Permalink
update addedit to handle signature option
Browse files Browse the repository at this point in the history
  • Loading branch information
elewis2 committed May 24, 2024
1 parent c11cd79 commit 381d3cf
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,36 @@ const EditDialog = ({
const [isDirty, setIsDirty] = useState(false);
const [isSubmitting, setIsSubmitting] = useState(false);
const [isDeleting, setIsDeleting] = useState(false);
const [variantType, setVariantType] = useState(false);
const [variantType, setVariantType] = useState<string>('gene');
const [defaultVariantType, setDefaultVariantType] = useState<string>();
const [defaultVariantValue, setDefaultVariantValue] = useState<string>();
const [defaultSignatureVariantValue, setDefaultSignatureVariantValue] = useState<string>();

const { showConfirmDialog } = useConfirmDialog();

useEffect(() => {
if (newData.ident) {
setDialogTitle('Edit Row');
setDefaultSignatureVariantValue(newData.signature
? `${newData.signature}`
: '');
setDefaultVariantValue(newData.variant && newData.gene
? `${newData.gene} ${newData.variant}`
: '');
} else {
setDialogTitle('Add Row');
}
}, [newData]);

useEffect(() => {
if (!editData) {
setDefaultVariantType('gene');
} else if (editData.signature || editData.signatureGraphkbId) {
setDefaultVariantType('signature');
setVariantType('signature');
} else {
setDefaultVariantType('gene');
}
setNewData({ type: 'replace', payload: editData || {} });
}, [editData]);

Expand All @@ -90,6 +108,15 @@ const EditDialog = ({

const handleSubmit = useCallback(async () => {
setIsSubmitting(true);
if (variantType === 'gene') {
newData.signature = null;
newData.signatureGraphkbId = null;
} else {
newData.gene = null;
newData.geneGraphkbId = null;
newData.variant = 'signature present';
newData.variantGraphkbId = null;
}
const {
ident,
createdAt,
Expand Down Expand Up @@ -135,7 +162,7 @@ const EditDialog = ({
} finally {
setIsSubmitting(false);
}
}, [newData, tableType, report, editData.ident, isSigned, onClose, showConfirmDialog]);
}, [newData, variantType, tableType, report, editData.ident, isSigned, onClose, showConfirmDialog]);

const handleDelete = useCallback(async () => {
setIsDeleting(true);
Expand All @@ -162,7 +189,7 @@ const EditDialog = ({
setIsDirty(true);
if (selectedValue) {
if (typeName === 'variant') {
setNewData({
setNewData({
payload: {
gene: selectedValue.reference1 && selectedValue.reference2
? `${selectedValue.reference1.displayName}, ${selectedValue.reference2.displayName}`
Expand All @@ -173,6 +200,12 @@ const EditDialog = ({
variantGraphkbId: selectedValue['@rid'],
},
});
} else if (typeName === 'signature') {
setNewData({
payload: {
signature: selectedValue.displayName,
},
});
} else {
setNewData({
payload: {
Expand All @@ -194,7 +227,6 @@ const EditDialog = ({
};

const handleVariantTypeChange = (event: React.ChangeEvent<HTMLInputElement>) => {
setIsDirty(true);
setVariantType(event.target.value);
};

Expand All @@ -207,42 +239,33 @@ const EditDialog = ({
<RadioGroup
row
aria-labelledby="demo-row-radio-buttons-group-label"
defaultValue={newData.signature ? "signature" : "gene"}
defaultValue={defaultVariantType}
name="row-radio-buttons-group"
onChange={handleVariantTypeChange}
>
<FormControlLabel value="gene" control={<Radio />} label="Gene" />
<FormControlLabel value="signature" control={<Radio />} label="Signature" />
</RadioGroup>
</FormControl>
<FormControl fullWidth>
{variantType==='gene' && <FormControl fullWidth>
<AutocompleteHandler
defaultValue={
newData.variant && newData.gene
? `${newData.gene} ${newData.variant}`
: ''
}
type="variant"
label="Gene and Variant"
defaultValue={defaultVariantValue}
type={"variant"}
label={"Gene and Variant"}
onChange={handleAutocompleteValueSelected}
required
error={errors && isDirty && errors.variant}
/>
</FormControl>
<FormControl fullWidth>
</FormControl>}
{variantType==='signature' && <FormControl fullWidth>
<AutocompleteHandler
defaultValue={
newData.variant && newData.signature
? `${newData.signature} ${newData.variant}`
: ''
}
type="signature"
label="Signature and Variant"
defaultValue={defaultSignatureVariantValue}
type={"signature"}
label={"Signature"}
onChange={handleAutocompleteValueSelected}
required
error={errors && isDirty && errors.variant}
/>
</FormControl>
error={errors && isDirty && errors.signature}
/></FormControl>}
<FormControl fullWidth>
<AutocompleteHandler
defaultValue={newData.therapy}
Expand Down
10 changes: 6 additions & 4 deletions app/views/ReportView/components/TherapeuticTargets/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,6 @@ const Therapeutic = ({
const therapeuticResp = await api.get(
`/reports/${report.ident}/therapeutic-targets`,
).request();

console.dir(therapeuticResp);
const [
filteredTherapeutic,
filteredChemoresistance,
Expand Down Expand Up @@ -135,7 +133,7 @@ const Therapeutic = ({
setShowDialog(false);
let tableData: TherapeuticType[] | Partial<TherapeuticType>[];
let setter: React.Dispatch<React.SetStateAction<TherapeuticType[] | Partial<TherapeuticType>[]>>;

let wasDelete = true;
if (newData) {
if (newData.type === 'therapeutic') {
tableData = therapeuticData;
Expand All @@ -153,12 +151,16 @@ const Therapeutic = ({
setter((prevVal) => [...prevVal, newData]);
}
snackbar.success('Row updated');
wasDelete = false;
}
setEditData(null);

// Update state to reflect new data after entry deleted
getData();
snackbar.success('Therapeutic option successfully deleted.');
if (wasDelete) {
// TODO do not display this message if the popup was closed via 'cancel' button
snackbar.success('Therapeutic option successfully deleted.');
}
} catch (err) {
snackbar.error(`Error, row not updated: ${err}`);
}
Expand Down

0 comments on commit 381d3cf

Please sign in to comment.