diff --git a/client/src/components/embedding/index.js b/client/src/components/embedding/index.js index a36d3256..7522017a 100644 --- a/client/src/components/embedding/index.js +++ b/client/src/components/embedding/index.js @@ -16,10 +16,11 @@ import actions from "../../actions"; import { getDiscreteCellEmbeddingRowIndex } from "../../util/stateManager/viewStackHelpers"; @connect((state) => ({ - layoutChoice: state.layoutChoice, // TODO: really should clean up naming, s/layout/embedding/g - schema: state.annoMatrix?.schema, - crossfilter: state.obsCrossfilter, - })) + imageUnderlay: state.imageUnderlay, + layoutChoice: state.layoutChoice, // TODO: really should clean up naming, s/layout/embedding/g + schema: state.annoMatrix?.schema, + crossfilter: state.obsCrossfilter, +})) class Embedding extends React.PureComponent { constructor(props) { super(props); @@ -27,8 +28,18 @@ class Embedding extends React.PureComponent { } handleLayoutChoiceChange = (e) => { - const { dispatch } = this.props; + const { dispatch, imageUnderlay } = this.props; dispatch(actions.layoutChoiceAction(e.currentTarget.value)); + + // if we just switched off spatial, if the image is on, turn it off + if ( + imageUnderlay.isActive && + e.target.value !== globals.spatialEmbeddingKeyword + ) { + dispatch({ + type: "toggle image underlay", + }); + } }; render() { diff --git a/client/src/components/menubar/index.js b/client/src/components/menubar/index.js index 02fcad09..37ac57c5 100644 --- a/client/src/components/menubar/index.js +++ b/client/src/components/menubar/index.js @@ -29,6 +29,7 @@ import { getEmbSubsetView } from "../../util/stateManager/viewStackHelpers"; subsetResetPossible, graphInteractionMode: state.controls.graphInteractionMode, imageUnderlay: state.imageUnderlay, + layoutChoice: state.layoutChoice, // TODO: really should clean up naming, s/layout/embedding/g clipPercentileMin: Math.round(100 * (annoMatrix?.clipRange?.[0] ?? 0)), clipPercentileMax: Math.round(100 * (annoMatrix?.clipRange?.[1] ?? 1)), userDefinedGenes: state.controls.userDefinedGenes, @@ -208,6 +209,7 @@ class MenuBar extends React.PureComponent { subsetPossible, subsetResetPossible, imageUnderlay, + layoutChoice, } = this.props; const { pendingClipPercentiles } = this.state; @@ -270,26 +272,28 @@ class MenuBar extends React.PureComponent { disabled={!isColoredByCategorical} /> - - - { - dispatch({ - type: "toggle image underlay", - }); - }} - /> - - + {layoutChoice?.available?.includes(globals.spatialEmbeddingKeyword) && ( + + + { + dispatch({ + type: "toggle image underlay", + }); + }} + /> + + + )}