diff --git a/src/components/data-processing/ConfigureEmbedding/ConfigureEmbedding.jsx b/src/components/data-processing/ConfigureEmbedding/ConfigureEmbedding.jsx index fca390c0e9..d627a36fac 100644 --- a/src/components/data-processing/ConfigureEmbedding/ConfigureEmbedding.jsx +++ b/src/components/data-processing/ConfigureEmbedding/ConfigureEmbedding.jsx @@ -7,7 +7,7 @@ import { } from 'antd'; import SelectData from 'components/plots/styling/embedding-continuous/SelectData'; -import { isUnisample } from 'utils/experimentPredicates'; +import { getIsUnisample } from 'utils/experimentPredicates'; import CategoricalEmbeddingPlot from 'components/plots/CategoricalEmbeddingPlot'; import ContinuousEmbeddingPlot from 'components/plots/ContinuousEmbeddingPlot'; @@ -135,11 +135,11 @@ const ConfigureEmbedding = (props) => { const { loading, data: plotData, error } = cellMeta[colouring]; const modifiedConfig = { ...config, - axes:{ + axes: { ...config.axes, yAxisText: config.axes.yAxisText || plotColouring, - } - } + }, + }; return ( { ); } - if (plotColouring === 'sample' && cellSets.accessible && isUnisample(cellSets.hierarchy) + if (plotColouring === 'sample' && cellSets.accessible && getIsUnisample(cellSets.hierarchy) ) { return (
diff --git a/src/components/data-processing/DataIntegration/DataIntegration.jsx b/src/components/data-processing/DataIntegration/DataIntegration.jsx index c59ef95320..4412dc9fde 100644 --- a/src/components/data-processing/DataIntegration/DataIntegration.jsx +++ b/src/components/data-processing/DataIntegration/DataIntegration.jsx @@ -1,5 +1,5 @@ import React, { - useState, useEffect, useRef, useCallback, + useState, useEffect, useRef, useCallback, useMemo, } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { @@ -24,7 +24,7 @@ import ElbowPlot from 'components/plots/ElbowPlot'; import { generateDataProcessingPlotUuid } from 'utils/generateCustomPlotUuid'; import EmptyPlot from 'components/plots/helpers/EmptyPlot'; import PlotStyling from 'components/plots/styling/PlotStyling'; -import { isUnisample } from 'utils/experimentPredicates'; +import { getIsUnisample } from 'utils/experimentPredicates'; import PlotLegendAlert, { MAX_LEGEND_ITEMS } from 'components/plots/helpers/PlotLegendAlert'; import CalculationConfig from './CalculationConfig'; @@ -33,9 +33,14 @@ const DataIntegration = (props) => { const { experimentId, onConfigChange, stepDisabled, stepHadErrors, disableDataIntegration, } = props; - const [selectedPlot, setSelectedPlot] = useState('embedding'); - const [plot, setPlot] = useState(null); + const cellSets = useSelector(getCellSets()); + + const isUnisample = useMemo(() => getIsUnisample(cellSets.hierarchy)); + + const [selectedPlot, setSelectedPlot] = useState(isUnisample ? 'elbow' : 'embedding'); + const [plot, setPlot] = useState(null); + const filterName = 'dataIntegration'; const configureEmbeddingFilterName = 'configureEmbedding'; @@ -275,7 +280,7 @@ const DataIntegration = (props) => { ); } - if ((selectedPlot === 'embedding' || selectedPlot === 'frequency') && cellSets.accessible && isUnisample(cellSets.hierarchy) + if ((selectedPlot === 'embedding' || selectedPlot === 'frequency') && cellSets.accessible && isUnisample ) { return (
diff --git a/src/utils/experimentPredicates.js b/src/utils/experimentPredicates.js index b08527ca2b..dd283ba682 100644 --- a/src/utils/experimentPredicates.js +++ b/src/utils/experimentPredicates.js @@ -1,4 +1,4 @@ -const isUnisample = (hierarchy) => hierarchy.find((rootNode) => rootNode.key === 'sample')?.children?.length === 1; +const getIsUnisample = (hierarchy) => hierarchy.find((rootNode) => rootNode.key === 'sample')?.children?.length === 1; // eslint-disable-next-line import/prefer-default-export -export { isUnisample }; +export { getIsUnisample };