Skip to content

Commit

Permalink
- A LOT of fixes for #1419
Browse files Browse the repository at this point in the history
  • Loading branch information
boriskovar-m2ms committed Jul 18, 2024
1 parent aa68da9 commit 205c06a
Show file tree
Hide file tree
Showing 25 changed files with 1,988 additions and 1,279 deletions.
32 changes: 30 additions & 2 deletions js/components/datasets/datasetMoleculeList.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ import {
getAllVisibleButNotLockedCompounds,
getObservationForLHSReference,
getCurrentDatasetIterator,
resetDatasetIterator
resetDatasetIterator,
getInspirationsForMol
} from './redux/dispatchActions';
import {
setAskLockCompoundsQuestion,
Expand All @@ -61,7 +62,8 @@ import {
appendColorToAllCompoundsOfDataset,
removeCompoundColorOfDataset,
removeColorFromAllCompoundsOfDataset,
setDatasetIterator
setDatasetIterator,
setInspirationDialogAction
} from './redux/actions';
import { DatasetFilter } from './datasetFilter';
import { FilterList, Link, DeleteForever, ArrowUpward, ArrowDownward, Edit } from '@material-ui/icons';
Expand Down Expand Up @@ -469,6 +471,8 @@ const DatasetMoleculeList = ({ title, datasetID, url }) => {
const purpleInput = useSelector(state => state.previewReducers.compounds[compoundsColors.purple.key]);
const apricotInput = useSelector(state => state.previewReducers.compounds[compoundsColors.apricot.key]);

const allInspirations = useSelector(state => state.datasetsReducers.allInspirations);

const inputs = {
[compoundsColors.blue.key]: blueInput,
[compoundsColors.red.key]: redInput,
Expand Down Expand Up @@ -955,6 +959,18 @@ const DatasetMoleculeList = ({ title, datasetID, url }) => {
if (node) {
setSelectedMoleculeRef(node);
}

dispatch(
setInspirationDialogAction(
datasetID,
nextItem.id,
getInspirationsForMol(allInspirations, datasetID, nextItem.id),
true,
0,
[]
)
);

dispatch(
moveDatasetMoleculeUpDown(stage, datasetID, firstItem, datasetID, nextItem, dataValue, ARROW_TYPE.DOWN)
);
Expand Down Expand Up @@ -1005,6 +1021,18 @@ const DatasetMoleculeList = ({ title, datasetID, url }) => {
if (node) {
setSelectedMoleculeRef(node);
}

dispatch(
setInspirationDialogAction(
datasetID,
prevItem.id,
getInspirationsForMol(allInspirations, datasetID, prevItem.id),
true,
0,
[]
)
);

dispatch(moveDatasetMoleculeUpDown(stage, datasetID, firstItem, datasetID, prevItem, dataValue, ARROW_TYPE.UP));
}
}
Expand Down
91 changes: 88 additions & 3 deletions js/components/datasets/datasetMoleculeView/datasetMoleculeView.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@ import {
setIsOpenLockVisibleCompoundsDialogLocal,
setCmpForLocalLockVisibleCompoundsDialog,
setAskLockCompoundsQuestion,
setCompoundToSelectedCompoundsByDataset
setCompoundToSelectedCompoundsByDataset,
setInspirationDialogAction,
setInspirationMoleculeDataList
} from '../redux/actions';
import { centerOnLigandByMoleculeID } from '../../../reducers/ngl/dispatchActions';
import { ArrowDownward, ArrowUpward, MyLocation } from '@material-ui/icons';
Expand Down Expand Up @@ -465,6 +467,34 @@ const DatasetMoleculeView = memo(
const [pdbData, setPdbData] = useState(null);
const isPdbAvailable = !!(data && (data.pdb_info || data.site_observation_code));

const isInspirationsDialogOpened = useSelector(state => state.datasetsReducers.isOpenInspirationDialog);
const inspirationLists = useSelector(state => state.datasetsReducers.inspirationLists);

const dialogOpenedForInspirationWithId =
inspirationLists.hasOwnProperty(datasetID) && inspirationLists[datasetID]?.length > 0
? inspirationLists[datasetID][0]
: 0;

const allInspirations = useSelector(state => state.datasetsReducers.allInspirations);

useEffect(() => {
if (isInspirationsDialogOpened && dialogOpenedForInspirationWithId === currentID) {
dispatch(setInspirationMoleculeDataList(getInspirationsForMol(allInspirations, datasetID, currentID)));
if (setRef) {
setRef(ref.current);
}
}
}, [
allInspirations,
currentID,
datasetID,
dialogOpenedForInspirationWithId,
dispatch,
isInspirationsDialogOpened,
inspirationLists,
setRef
]);

useEffect(() => {
if (data.site_observation_code) {
const molecule = allMolecules.find(mol => mol.code === data.site_observation_code);
Expand Down Expand Up @@ -781,6 +811,18 @@ const DatasetMoleculeView = memo(
setRef(refNext);
}

dispatch(
setInspirationDialogAction(
nextDatasetID,
nextItem.id,
getInspirationsForMol(allInspirations, nextDatasetID, nextItem.id),
true,
0,
[],
true
)
);

dispatch(
moveSelectedDatasetMoleculeUpDown(
stage,
Expand Down Expand Up @@ -825,6 +867,17 @@ const DatasetMoleculeView = memo(
setRef(refNext);
}

dispatch(
setInspirationDialogAction(
nextDatasetID,
nextItem.id,
getInspirationsForMol(allInspirations, nextDatasetID, nextItem.id),
true,
0,
[]
)
);

dispatch(
moveDatasetMoleculeUpDown(stage, datasetID, data, nextDatasetID, nextItem, dataValue, ARROW_TYPE.DOWN)
);
Expand Down Expand Up @@ -866,6 +919,18 @@ const DatasetMoleculeView = memo(
setRef(refPrevious);
}

dispatch(
setInspirationDialogAction(
previousDatasetID,
previousItem.id,
getInspirationsForMol(allInspirations, previousDatasetID, previousItem.id),
true,
0,
[],
true
)
);

dispatch(
moveSelectedDatasetMoleculeUpDown(
stage,
Expand Down Expand Up @@ -912,6 +977,17 @@ const DatasetMoleculeView = memo(
setRef(refPrevious);
}

dispatch(
setInspirationDialogAction(
previousDatasetID,
previousItem.id,
getInspirationsForMol(allInspirations, previousDatasetID, previousItem.id),
true,
0,
[]
)
);

dispatch(
moveDatasetMoleculeUpDown(
stage,
Expand Down Expand Up @@ -1208,15 +1284,24 @@ const DatasetMoleculeView = memo(
onClick={() => {
setLoadingInspiration(true);
dispatch((dispatch, getState) => {
const allInspirations = getState().datasetsReducers.allInspirations;

dispatch(
clickOnInspirations({
datasetID,
currentID,
computed_inspirations: getInspirationsForMol(allInspirations, datasetID, currentID)
})
);
dispatch(
setInspirationDialogAction(
datasetID,
currentID,
getInspirationsForMol(allInspirations, datasetID, currentID),
true,
0,
[],
inSelectedCompoundsList
)
);
});
if (setRef) {
setRef(ref.current);
Expand Down
21 changes: 19 additions & 2 deletions js/components/datasets/inspirationDialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
} from '../preview/molecule/redux/dispatchActions';
import MoleculeView from '../preview/molecule/moleculeView';
import { moleculeProperty } from '../preview/molecule/helperConstants';
import { setIsOpenInspirationDialog } from './redux/actions';
import { setInspirationDialogAction, setInspirationList, setIsOpenInspirationDialog } from './redux/actions';
import { Button } from '../common/Inputs/Button';
import classNames from 'classnames';
import { colourList } from '../preview/molecule/utils/color';
Expand Down Expand Up @@ -146,6 +146,8 @@ export const InspirationDialog = memo(
const moleculeLists = useSelector(state => state.datasetsReducers.moleculeLists);
const scoreDatasetMap = useSelector(state => state.datasetsReducers.scoreDatasetMap);

const compoundId = useSelector(state => state.datasetsReducers);

/**
* Get rationale as score of each individual molecule
* @returns {string}
Expand Down Expand Up @@ -354,7 +356,22 @@ export const InspirationDialog = memo(
<IconButton
color="inherit"
className={classes.headerButton}
onClick={() => dispatch(setIsOpenInspirationDialog(false))}
onClick={() => {
dispatch(setIsOpenInspirationDialog(false));
dispatch(setInspirationList(datasetID, []));
dispatch(
setInspirationDialogAction(
datasetID,
0,
[],
false,
inspirationLists.hasOwnProperty(datasetID) && inspirationLists[datasetID].length > 0
? inspirationLists[datasetID][0]
: 0,
inspirationMoleculeDataList
)
);
}}
>
<Close />
</IconButton>
Expand Down
32 changes: 32 additions & 0 deletions js/components/datasets/redux/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,33 @@ export const setInspirationList = function(datasetID, inspirationList) {
}
};
};

export const setInspirationDialogAction = (
datasetID,
inspirationList,
inpsirations,
open,
prevInspirationList,
prevInspirations,
isSelectedList = false
) => {
return {
type: constants.SET_INSPIRATION_DIALOG_ACTION,
datasetID: datasetID,
inspirationList: inspirationList,
inpsirations: inpsirations,
open: open,
prevInspirationList: prevInspirationList,
prevInspirations: prevInspirations,
isSelectedList: isSelectedList
};
};

export const setInspirationDialogOpenedForSelectedCompounds = isOpen => ({
type: constants.SET_INSPIRATION_DIALOG_OPENED_FOR_SELECTED_COMPOUND,
isOpen: isOpen
});

export const appendInspirationList = function(datasetID, itemID) {
return {
type: constants.APPEND_INSPIRATION_LIST,
Expand Down Expand Up @@ -534,6 +561,11 @@ export const setDatasetScrolled = datasetId => ({
payload: datasetId
});

export const setSelectedDatasetScrolled = scrolled => ({
type: constants.SET_SELECTED_DATASET_SCROLLED,
payload: scrolled
});

export const resetDatasetScrolledMap = () => ({
type: constants.RESET_DATASET_SCROLLED_MAP
});
Expand Down
6 changes: 5 additions & 1 deletion js/components/datasets/redux/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ export const constants = {

SET_DATASET_SCROLLED: prefix + 'SET_DATASET_SCROLLED',
RESET_DATASET_SCROLLED_MAP: prefix + 'RESET_DATASET_SCROLLED_MAP',
SET_SELECTED_DATASET_SCROLLED: prefix + 'SET_SELECTED_DATASET_SCROLLED',

SET_IS_OPEN_LOCK_VISIBLE_COMPOUNDS_DIALOG_GLOBAL: prefix + 'SET_IS_OPEN_LOCK_VISIBLE_COMPOUNDS_DIALOG_GLOBAL',
SET_IS_OPEN_LOCK_VISIBLE_COMPOUNDS_DIALOG_LOCAL: prefix + 'SET_IS_OPEN_LOCK_VISIBLE_COMPOUNDS_DIALOG_LOCAL',
Expand All @@ -118,7 +119,10 @@ export const constants = {
SET_UPDATED_DATASETS: prefix + 'SET_UPDATED_DATASETS',

SET_DATASET_ITERATOR: prefix + 'SET_DATASET_ITERATOR',
SET_SELECTED_COMPOUNDS_ITERATOR: prefix + 'SET_SELECTED_COMPOUNDS_ITERATOR'
SET_SELECTED_COMPOUNDS_ITERATOR: prefix + 'SET_SELECTED_COMPOUNDS_ITERATOR',

SET_INSPIRATION_DIALOG_ACTION: prefix + 'SET_INSPIRATION_DIALOG_ACTION',
SET_INSPIRATION_DIALOG_OPENED_FOR_SELECTED_COMPOUND: prefix + 'SET_INSPIRATION_DIALOG_OPENED_FOR_SELECTED_COMPOUND'
};

export const COUNT_OF_VISIBLE_SCORES = 7;
Expand Down
22 changes: 11 additions & 11 deletions js/components/datasets/redux/dispatchActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -1110,14 +1110,14 @@ export const moveSelectedDatasetMoleculeUpDown = (

const inspirations = getInspirationsForMol(allInspirations, datasetID, newItem.id);
dispatch(setInspirationMoleculeDataList(inspirations));
dispatch(clearCompoundView(newItem, datasetID, stage, true));
dispatch(clearCompoundView(newItem, datasetID, stage, false));
await Promise.all([
dispatch(moveSelectedMoleculeSettings(stage, item, newItem, newItemDatasetID, datasetID, dataValue, true)),
dispatch(moveSelectedDatasetMoleculeInspirationsSettings(item, newItem, stage, true))
dispatch(moveSelectedMoleculeSettings(stage, item, newItem, newItemDatasetID, datasetID, dataValue, false)),
dispatch(moveSelectedDatasetMoleculeInspirationsSettings(item, newItem, stage, false))
]);

dispatch(removeSelectedDatasetMolecules(stage, true, newItem, { ...lockedCompounds }));
dispatch(removeSelectedTypesOfDatasetInspirations([newItem], stage, true, datasetID));
dispatch(removeSelectedDatasetMolecules(stage, false, newItem, { ...lockedCompounds }));
dispatch(removeSelectedTypesOfDatasetInspirations([newItem], stage, false, datasetID));

dispatch(setSelectedCompoundsIterator(newItemDatasetID, newItem));
};
Expand All @@ -1139,21 +1139,21 @@ export const moveDatasetMoleculeUpDown = (stage, datasetID, item, newItemDataset

const dataValue = { ...data, objectsInView };

dispatch(setArrowUpDown(datasetID, item, newItem, direction, dataValue));
// dispatch(setArrowUpDown(datasetID, item, newItem, direction, dataValue));

const inspirations = getInspirationsForMol(allInspirations, datasetID, newItem.id);
dispatch(setInspirationMoleculeDataList(inspirations));
dispatch(clearCompoundView(newItem, datasetID, stage, true));
dispatch(clearCompoundView(newItem, datasetID, stage, false));
console.log('moveDatasetMoleculeUpDown - compounds cleared');
await Promise.all([
dispatch(moveSelectedMoleculeSettings(stage, item, newItem, newItemDatasetID, datasetID, dataValue, true)),
dispatch(moveSelectedDatasetMoleculeInspirationsSettings(item, newItem, stage, true))
dispatch(moveSelectedMoleculeSettings(stage, item, newItem, newItemDatasetID, datasetID, dataValue, false)),
dispatch(moveSelectedDatasetMoleculeInspirationsSettings(item, newItem, stage, false))
]);

dispatch(
removeSelectedDatasetMolecules(stage, true, newItem, { [newItemDatasetID]: [newItem.id, ...lockedCompounds] })
removeSelectedDatasetMolecules(stage, false, newItem, { [newItemDatasetID]: [newItem.id, ...lockedCompounds] })
);
dispatch(removeSelectedTypesOfDatasetInspirations([newItem], stage, true, datasetID));
dispatch(removeSelectedTypesOfDatasetInspirations([newItem], stage, false, datasetID));

dispatch(setDatasetIterator(newItemDatasetID, newItem));
};
Expand Down
Loading

0 comments on commit 205c06a

Please sign in to comment.