Skip to content

Commit efeff57

Browse files
#384 move same settings to next/previous compound in RHS
1 parent b96dff9 commit efeff57

File tree

2 files changed

+65
-53
lines changed

2 files changed

+65
-53
lines changed

js/components/datasets/datasetMoleculeView.js

+44-7
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
import React, { memo, useEffect, useState, useRef, useContext } from 'react';
66
import { useDispatch, useSelector } from 'react-redux';
7-
import { Grid, Button, makeStyles, Tooltip, Typography, Checkbox, IconButton } from '@material-ui/core';
7+
import { Grid, Button, makeStyles, Tooltip, Checkbox, IconButton } from '@material-ui/core';
88
import SVGInline from 'react-svg-inline';
99
import classNames from 'classnames';
1010
import { VIEWS } from '../../constants/constants';
@@ -450,6 +450,35 @@ export const DatasetMoleculeView = memo(
450450
return cssClass;
451451
};
452452

453+
const moveSelectedMoleculeSettings = newItemData => {
454+
if (newItemData) {
455+
if (isLigandOn) {
456+
dispatch(addDatasetLigand(stage, newItemData, colourToggle, datasetID));
457+
removeSelectedLigand();
458+
}
459+
if (isProteinOn) {
460+
dispatch(addDatasetHitProtein(stage, newItemData, colourToggle, datasetID));
461+
removeSelectedProtein();
462+
}
463+
if (isComplexOn) {
464+
dispatch(addDatasetComplex(stage, newItemData, colourToggle, datasetID));
465+
removeSelectedComplex();
466+
}
467+
if (isSurfaceOn) {
468+
dispatch(addDatasetSurface(stage, newItemData, colourToggle, datasetID));
469+
removeSelectedSurface();
470+
}
471+
}
472+
};
473+
474+
const handleClickOnDownArrow = () => {
475+
moveSelectedMoleculeSettings(nextItemData);
476+
};
477+
478+
const handleClickOnUpArrow = () => {
479+
moveSelectedMoleculeSettings(previousItemData);
480+
};
481+
453482
const moleculeTitle = data && data.name;
454483
const datasetTitle = datasets?.find(item => `${item.id}` === `${datasetID}`)?.title;
455484

@@ -702,14 +731,22 @@ export const DatasetMoleculeView = memo(
702731
<Grid item>
703732
<Grid container direction="column" justify="space-between" className={classes.arrows}>
704733
<Grid item>
705-
<Tooltip title="secondary">
706-
<IconButton color="primary" size="small" disabled={disableUserInteraction || !previousItemData}>
707-
<ArrowUpward className={classes.arrow} />
708-
</IconButton>
709-
</Tooltip>
734+
<IconButton
735+
color="primary"
736+
size="small"
737+
disabled={disableUserInteraction || !previousItemData}
738+
onClick={handleClickOnUpArrow}
739+
>
740+
<ArrowUpward className={classes.arrow} />
741+
</IconButton>
710742
</Grid>
711743
<Grid item>
712-
<IconButton color="primary" size="small" disabled={disableUserInteraction || !nextItemData}>
744+
<IconButton
745+
color="primary"
746+
size="small"
747+
disabled={disableUserInteraction || !nextItemData}
748+
onClick={handleClickOnDownArrow}
749+
>
713750
<ArrowDownward className={classes.arrow} />
714751
</IconButton>
715752
</Grid>

js/components/preview/molecule/moleculeView.js

+21-46
Original file line numberDiff line numberDiff line change
@@ -469,66 +469,43 @@ const MoleculeView = memo(
469469
return cssClass;
470470
};
471471

472-
const handleClickOnDownArrow = () => {
473-
if (nextItemData) {
472+
const moveSelectedMolSettings = newItemDataset => {
473+
if (newItemDataset) {
474474
if (isLigandOn) {
475-
dispatch(addLigand(stage, nextItemData, colourToggle));
475+
dispatch(addLigand(stage, newItemDataset, colourToggle));
476476
removeSelectedLigand();
477477
}
478478
if (isProteinOn) {
479-
dispatch(addHitProtein(stage, nextItemData, colourToggle));
479+
dispatch(addHitProtein(stage, newItemDataset, colourToggle));
480480
removeSelectedProtein();
481481
}
482482
if (isComplexOn) {
483-
dispatch(addComplex(stage, nextItemData, colourToggle));
483+
dispatch(addComplex(stage, newItemDataset, colourToggle));
484484
removeSelectedComplex();
485485
}
486486
if (isSurfaceOn) {
487-
dispatch(addSurface(stage, nextItemData, colourToggle));
487+
dispatch(addSurface(stage, newItemDataset, colourToggle));
488488
removeSelectedSurface();
489489
}
490490
if (isDensityOn) {
491-
dispatch(addDensity(stage, nextItemData, colourToggle));
491+
dispatch(addDensity(stage, newItemDataset, colourToggle));
492492
removeSelectedDensity();
493493
}
494494
if (isVectorOn) {
495-
dispatch(addVector(stage, nextItemData)).catch(error => {
495+
dispatch(addVector(stage, newItemDataset)).catch(error => {
496496
throw new Error(error);
497497
});
498498
removeSelectedVector();
499499
}
500500
}
501501
};
502502

503+
const handleClickOnDownArrow = () => {
504+
moveSelectedMolSettings(nextItemData);
505+
};
506+
503507
const handleClickOnUpArrow = () => {
504-
if (previousItemData) {
505-
if (isLigandOn) {
506-
dispatch(addLigand(stage, previousItemData, colourToggle));
507-
removeSelectedLigand();
508-
}
509-
if (isProteinOn) {
510-
dispatch(addHitProtein(stage, previousItemData, colourToggle));
511-
removeSelectedProtein();
512-
}
513-
if (isComplexOn) {
514-
dispatch(addComplex(stage, previousItemData, colourToggle));
515-
removeSelectedComplex();
516-
}
517-
if (isSurfaceOn) {
518-
dispatch(addSurface(stage, previousItemData, colourToggle));
519-
removeSelectedSurface();
520-
}
521-
if (isDensityOn) {
522-
dispatch(addDensity(stage, previousItemData, colourToggle));
523-
removeSelectedDensity();
524-
}
525-
if (isVectorOn) {
526-
dispatch(addVector(stage, previousItemData)).catch(error => {
527-
throw new Error(error);
528-
});
529-
removeSelectedVector();
530-
}
531-
}
508+
moveSelectedMolSettings(previousItemData);
532509
};
533510

534511
let moleculeTitle = data?.protein_code.replace(`${target_on_name}-`, '');
@@ -721,16 +698,14 @@ const MoleculeView = memo(
721698
<Grid item>
722699
<Grid container direction="column" justify="space-between" className={classes.arrows}>
723700
<Grid item>
724-
<Tooltip title="secondary">
725-
<IconButton
726-
color="primary"
727-
size="small"
728-
disabled={disableUserInteraction || !previousItemData}
729-
onClick={handleClickOnUpArrow}
730-
>
731-
<ArrowUpward className={classes.arrow} />
732-
</IconButton>
733-
</Tooltip>
701+
<IconButton
702+
color="primary"
703+
size="small"
704+
disabled={disableUserInteraction || !previousItemData}
705+
onClick={handleClickOnUpArrow}
706+
>
707+
<ArrowUpward className={classes.arrow} />
708+
</IconButton>
734709
</Grid>
735710
<Grid item>
736711
<IconButton

0 commit comments

Comments
 (0)