diff --git a/js/components/datasets/redux/actions.js b/js/components/datasets/redux/actions.js index c7f3d92c5..3fa26512f 100644 --- a/js/components/datasets/redux/actions.js +++ b/js/components/datasets/redux/actions.js @@ -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 => { diff --git a/js/components/preview/compounds/compoundDataView.js b/js/components/preview/compounds/compoundDataView.js index 8f0e63aeb..a0df514c7 100644 --- a/js/components/preview/compounds/compoundDataView.js +++ b/js/components/preview/compounds/compoundDataView.js @@ -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, @@ -31,8 +28,9 @@ export const CompoundDataView = memo(({ currentCompoundIds, isTooltip, index }) const classes = useStyles(); return ( - currentCompoundIds && currentCompoundIds.length > 0 && ( - + currentCompoundIds && + currentCompoundIds.length > 0 && ( + {currentCompoundIds.map((data, i, array) => { return ( ({ compundItem: { - marginRight: `${theme.spacing(1)}px`, - marginTop: `${theme.spacing(1)}px` + marginRight: theme.spacing(1) / 2, + marginTop: theme.spacing(1) / 2 } })); diff --git a/js/components/preview/compounds/redux/dispatchActions.js b/js/components/preview/compounds/redux/dispatchActions.js index ad1c342ea..68d09fbfe 100644 --- a/js/components/preview/compounds/redux/dispatchActions.js +++ b/js/components/preview/compounds/redux/dispatchActions.js @@ -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(); @@ -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]) { @@ -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; } } @@ -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]; } @@ -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)); }); @@ -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(); @@ -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(); @@ -278,8 +286,8 @@ 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 { @@ -287,8 +295,8 @@ export const handleClickOnCompound = ({ event, data, majorViewStage, 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)); } @@ -296,15 +304,26 @@ export const handleClickOnCompound = ({ event, data, majorViewStage, index }) => }; 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)); } };