Skip to content

Commit b1d4c25

Browse files
authored
v2.11.1 (#36)
* handle time series viz product in bundle * prepare v2.11.1
1 parent 4344ce0 commit b1d4c25

File tree

4 files changed

+36
-16
lines changed

4 files changed

+36
-16
lines changed

apps/data-product-detail/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "portal-data-products",
3-
"version": "2.11.0",
3+
"version": "2.11.1",
44
"private": true,
55
"homepage": "http://localhost/data-products/",
66
"dependencies": {

apps/data-product-detail/src/components/DataProductPage.jsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import ReleaseFilter from 'portal-core-components/lib/components/ReleaseFilter';
88

99
import RouteService from 'portal-core-components/lib/service/RouteService';
1010

11+
import { isStringNonEmpty } from 'portal-core-components/lib/util/typeUtil';
12+
1113
import DataProductContext from './DataProductContext';
1214

1315
import SkeletonSection from './Sections/SkeletonSection';
@@ -32,7 +34,14 @@ const DataProductPage = () => {
3234
const product = getCurrentProductFromState(state);
3335
const {
3436
app: { status: appStatus, error: appError },
35-
route: { productCode, release: currentRelease },
37+
route: {
38+
productCode,
39+
release: currentRelease,
40+
bundle: {
41+
doiProductCode,
42+
parentCodes,
43+
},
44+
},
3645
data: {
3746
releases,
3847
aopVizProducts,
@@ -112,8 +121,11 @@ const DataProductPage = () => {
112121
}, [title, currentRelease]);
113122

114123
const isTombstoned = DataProductContext.determineTombstoned(productReleaseDois, currentRelease);
115-
const showVizSection = !isTombstoned
116-
&& (timeSeriesProductCodes.includes(productCode) || aopVizProducts.includes(productCode));
124+
const isVizProduct = (timeSeriesProductCodes.includes(productCode)
125+
|| aopVizProducts.includes(productCode));
126+
const isBundleChild = (parentCodes.length > 0)
127+
&& (isStringNonEmpty(doiProductCode) || Array.isArray(doiProductCode));
128+
const showVizSection = !isTombstoned && (isVizProduct && !isBundleChild);
117129

118130
// Establish sidebar links mapping to sections
119131
const sidebarLinks = [

apps/data-product-detail/src/components/Sections/VisualizationsSection.jsx

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import NeonContext from 'portal-core-components/lib/components/NeonContext';
1010
import AopDataViewer from 'portal-core-components/lib/components/AopDataViewer';
1111
import TimeSeriesViewer from 'portal-core-components/lib/components/TimeSeriesViewer';
1212
import Theme from 'portal-core-components/lib/components/Theme';
13+
import { exists, existsNonEmpty } from 'portal-core-components/lib/util/typeUtil';
1314

1415
import DataProductContext from '../DataProductContext';
1516
import Section from './Section';
@@ -36,19 +37,26 @@ const VisualizationsSection = (props) => {
3637
return <SkeletonSection {...props} />;
3738
}
3839

40+
let defaultVizMessage = 'This product does not currently have any visualizations.';
41+
3942
// Build an object containing rendered visualization nodes
4043
const viz = {};
4144
if (timeSeriesProductCodes.includes(productCode)) {
42-
viz.TIME_SERIES = {
43-
name: 'Time Series Viewer',
44-
node: (
45-
<TimeSeriesViewer
46-
key="timeSeriesViewer"
47-
productCode={productCode}
48-
release={currentRelease}
49-
/>
50-
),
51-
};
45+
const hasData = exists(product) && existsNonEmpty(product.siteCodes);
46+
if (!hasData) {
47+
defaultVizMessage = 'This product does not currently have any data to display.';
48+
} else {
49+
viz.TIME_SERIES = {
50+
name: 'Time Series Viewer',
51+
node: (
52+
<TimeSeriesViewer
53+
key="timeSeriesViewer"
54+
productCode={productCode}
55+
release={currentRelease}
56+
/>
57+
),
58+
};
59+
}
5260
}
5361
if (aopVizProducts.includes(productCode)) {
5462
viz.AOP = {
@@ -84,7 +92,7 @@ const VisualizationsSection = (props) => {
8492
Object.keys(viz).map((k) => viz[k].node)
8593
) : (
8694
<Typography variant="subtitle1" style={{ color: Theme.colors.GREY[500] }}>
87-
This product does not currently have any visualizations.
95+
{defaultVizMessage}
8896
</Typography>
8997
)}
9098
</Section>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "portal-react-apps",
3-
"version": "2.11.0",
3+
"version": "2.11.1",
44
"private": true,
55
"packageManager": "[email protected]",
66
"config": {

0 commit comments

Comments
 (0)