Skip to content

Commit

Permalink
#538 Add additional information to vector selector compounds
Browse files Browse the repository at this point in the history
  • Loading branch information
Adriána Kohanová committed Feb 16, 2021
1 parent 710e9fc commit c65f967
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 40 deletions.
20 changes: 16 additions & 4 deletions js/components/datasets/redux/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -325,14 +325,26 @@ export const setFilterWithInspirations = isChecked => ({
payload: isChecked
});

export const appendMoleculeToCompoundsOfDatasetToBuy = (datasetID, moleculeID, moleculeTitle) => ({
export const appendMoleculeToCompoundsOfDatasetToBuy = (
datasetID,
moleculeID,
moleculeTitle,
skipTracking = false
) => ({
type: constants.APPEND_MOLECULE_TO_COMPOUNDS_TO_BUY_OF_DATASET,
payload: { datasetID, moleculeID, moleculeTitle }
payload: { datasetID, moleculeID, moleculeTitle },
skipTracking: skipTracking
});

export const removeMoleculeFromCompoundsOfDatasetToBuy = (datasetID, moleculeID, moleculeTitle) => ({
export const removeMoleculeFromCompoundsOfDatasetToBuy = (
datasetID,
moleculeID,
moleculeTitle,
skipTracking = false
) => ({
type: constants.REMOVE_MOLECULE_FROM_COMPOUNDS_TO_BUY_OF_DATASET,
payload: { datasetID, moleculeID, moleculeTitle }
payload: { datasetID, moleculeID, moleculeTitle },
skipTracking: skipTracking
});

export const reloadDatasetsReducer = savedDatasetsReducers => {
Expand Down
8 changes: 3 additions & 5 deletions js/components/preview/compounds/compoundDataView.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,6 @@ const useStyles = makeStyles(theme => ({
width: 'inherit',
color: theme.palette.white
},
gridItemList: {
height: `calc(100% - ${theme.spacing(6)}px - ${theme.spacing(2)}px)`
},

moleculeTitleLabel: {
...theme.typography.button,
Expand All @@ -31,8 +28,9 @@ export const CompoundDataView = memo(({ currentCompoundIds, isTooltip, index })
const classes = useStyles();

return (
currentCompoundIds && currentCompoundIds.length > 0 && (
<Grid item className={classes.gridItemList}>
currentCompoundIds &&
currentCompoundIds.length > 0 && (
<Grid item className={''}>
{currentCompoundIds.map((data, i, array) => {
return (
<Grid
Expand Down
4 changes: 2 additions & 2 deletions js/components/preview/compounds/compoundView.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ export const loadingCompoundImage = `<svg xmlns="http://www.w3.org/2000/svg" ver

const useStyles = makeStyles(theme => ({
compundItem: {
marginRight: `${theme.spacing(1)}px`,
marginTop: `${theme.spacing(1)}px`
marginRight: theme.spacing(1) / 2,
marginTop: theme.spacing(1) / 2
}
}));

Expand Down
77 changes: 48 additions & 29 deletions js/components/preview/compounds/redux/dispatchActions.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ import {
getCurrentVectorCompoundsFiltered,
getMoleculeOfCurrentVector
} from '../../../../reducers/selection/selectors';
import {appendMoleculeToCompoundsOfDatasetToBuy, removeMoleculeFromCompoundsOfDatasetToBuy, updateFilterShowedScoreProperties} from '../../../datasets/redux/actions';
import {
appendMoleculeToCompoundsOfDatasetToBuy,
removeMoleculeFromCompoundsOfDatasetToBuy,
updateFilterShowedScoreProperties
} from '../../../datasets/redux/actions';

export const selectAllCompounds = () => (dispatch, getState) => {
const state = getState();
Expand All @@ -44,7 +48,7 @@ export const selectAllCompounds = () => (dispatch, getState) => {

let items = [];

let selectedCompoundsAux = {...selectedCompounds};
let selectedCompoundsAux = { ...selectedCompounds };

for (let key in currentVectorCompoundsFiltered) {
for (let index in currentVectorCompoundsFiltered[key]) {
Expand All @@ -64,7 +68,7 @@ export const selectAllCompounds = () => (dispatch, getState) => {
items.push(thisObj);
dispatch(appendToBuyList(thisObj, compoundId, true));
dispatch(addSelectedCompoundClass(currentCompoundClass, compoundId));
dispatch(appendMoleculeToCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, thisObj.smiles, ''));
dispatch(appendMoleculeToCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, thisObj.smiles, '', true));
selectedCompoundsAux[thisObj.smiles] = thisObj;
}
}
Expand Down Expand Up @@ -172,12 +176,12 @@ const clearCompounds = (items, majorViewStage) => (dispatch, getState) => {

const selectedCompounds = state.previewReducers.compounds.allSelectedCompounds;

let selectedCompoundsAux = {...selectedCompounds};
let selectedCompoundsAux = { ...selectedCompounds };

dispatch(removeFromToBuyListAll(items));
dispatch(setToBuyList([]));
items.forEach(item => {
dispatch(removeMoleculeFromCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, item.smiles, ''));
dispatch(removeMoleculeFromCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, item.smiles, '', true));
if (selectedCompoundsAux[item.smiles]) {
delete selectedCompoundsAux[item.smiles];
}
Expand All @@ -189,8 +193,8 @@ const clearCompounds = (items, majorViewStage) => (dispatch, getState) => {
const currentCompounds = state.previewReducers.compounds.currentCompounds;
const showedCompoundList = state.previewReducers.compounds.showedCompoundList;
showedCompoundList.forEach(smiles => {
const data = currentCompounds.find(c => c.smiles = smiles);
const index = data.index
const data = currentCompounds.find(c => (c.smiles = smiles));
const index = data.index;
dispatch(showCompoundNglView({ majorViewStage, data, index }));
dispatch(removeShowedCompoundFromList(index));
});
Expand All @@ -207,38 +211,42 @@ const clearCompounds = (items, majorViewStage) => (dispatch, getState) => {
};

export const prepareFakeFilterData = () => (dispatch, getState) => {
dispatch(updateFilterShowedScoreProperties({
datasetID: AUX_VECTOR_SELECTOR_DATASET_ID,
scoreList: [{id: 1, name: 'smiles', description: 'smiles', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID},
{id: 2, name: 'mol', description: 'mol', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID},
{id: 3, name: 'vector', description: 'vector', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID},
{id: 4, name: 'class', description: 'class', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID},
{id: 5, name: 'classColor', description: 'classColor', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID}]
}));
}

export const isCompoundFromVectorSelector = (data) => {
dispatch(
updateFilterShowedScoreProperties({
datasetID: AUX_VECTOR_SELECTOR_DATASET_ID,
scoreList: [
{ id: 1, name: 'smiles', description: 'smiles', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID },
{ id: 2, name: 'mol', description: 'mol', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID },
{ id: 3, name: 'vector', description: 'vector', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID },
{ id: 4, name: 'class', description: 'class', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID },
{ id: 5, name: 'classColor', description: 'classColor', computed_set: AUX_VECTOR_SELECTOR_DATASET_ID }
]
})
);
};

export const isCompoundFromVectorSelector = data => {
if (data['index'] !== undefined) {
return true;
} else {
return false;
}
}
};

export const deselectVectorCompound = (data) => (dispatch, getState) => {
export const deselectVectorCompound = data => (dispatch, getState) => {
if (isCompoundFromVectorSelector(data)) {
const index = data['index'];

const state = getState();
const selectedCompounds = state.previewReducers.compounds.allSelectedCompounds;

dispatch(removeSelectedCompoundClass(index));
dispatch(removeFromToBuyList(data, index));
const selectedCompoundsCopy = {...selectedCompounds};
const selectedCompoundsCopy = { ...selectedCompounds };
delete selectedCompoundsCopy[data.smiles];
dispatch(setSelectedCompounds(selectedCompoundsCopy));
}
}
};

export const showHideLigand = (data, majorViewStage) => async (dispatch, getState) => {
const state = getState();
Expand All @@ -250,8 +258,8 @@ export const showHideLigand = (data, majorViewStage) => async (dispatch, getStat
dispatch(removeShowedCompoundFromList(index, data));
} else {
dispatch(addShowedCompoundToList(index, data));
}
}
}
};

export const handleClickOnCompound = ({ event, data, majorViewStage, index }) => async (dispatch, getState) => {
const state = getState();
Expand All @@ -278,33 +286,44 @@ export const handleClickOnCompound = ({ event, data, majorViewStage, index }) =>
if (isSelectedID !== undefined) {
dispatch(removeSelectedCompoundClass(index));
dispatch(removeFromToBuyList(data, index));
dispatch(removeMoleculeFromCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, data.smiles, ''));
const selectedCompoundsCopy = {...selectedCompounds};
dispatch(removeMoleculeFromCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, data.smiles, '', true));
const selectedCompoundsCopy = { ...selectedCompounds };
delete selectedCompoundsCopy[data.smiles];
dispatch(setSelectedCompounds(selectedCompoundsCopy));
} else {
data['index'] = index;
data['compoundClass'] = currentCompoundClass;
dispatch(addSelectedCompoundClass(currentCompoundClass, index));
dispatch(appendToBuyList(Object.assign({}, data, { class: currentCompoundClass, compoundId: index }), index));
dispatch(appendMoleculeToCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, data.smiles, ''));
const selectedCompoundsCopy = {...selectedCompounds};
dispatch(appendMoleculeToCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, data.smiles, '', true));
const selectedCompoundsCopy = { ...selectedCompounds };
selectedCompoundsCopy[data.smiles] = data;
dispatch(setSelectedCompounds(selectedCompoundsCopy));
}
}
};

export const handleBuyList = ({ isSelected, data, skipTracking }) => (dispatch, getState) => {
const state = getState();
const selectedCompounds = state.previewReducers.compounds.allSelectedCompounds;

let compoundId = data.compoundId;
dispatch(setHighlightedCompoundId(compoundId));

if (isSelected === false) {
dispatch(removeSelectedCompoundClass(compoundId));
dispatch(removeFromToBuyList(data, compoundId, skipTracking));
dispatch(removeMoleculeFromCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, data.smiles, '', true));
const selectedCompoundsCopy = { ...selectedCompounds };
delete selectedCompoundsCopy[data.smiles];
dispatch(setSelectedCompounds(selectedCompoundsCopy));
} else {
dispatch(addSelectedCompoundClass(data.class, compoundId));
dispatch(appendToBuyList(Object.assign({}, data), compoundId, skipTracking));
dispatch(appendMoleculeToCompoundsOfDatasetToBuy(AUX_VECTOR_SELECTOR_DATASET_ID, data.smiles, '', true));
const selectedCompoundsCopy = { ...selectedCompounds };
selectedCompoundsCopy[data.smiles] = data;
dispatch(setSelectedCompounds(selectedCompoundsCopy));
}
};

Expand Down

0 comments on commit c65f967

Please sign in to comment.