diff --git a/package-lock.json b/package-lock.json index 2944550bd..e57898318 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@apollo/client": "^3.8.5", - "@edsc/metadata-preview": "^1.3.19", + "@edsc/metadata-preview": "^1.4.0-beta.2", "@node-saml/node-saml": "^4.0.5", "@rjsf/core": "^5.15.0", "@rjsf/utils": "^5.15.0", @@ -86,7 +86,7 @@ "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "express": "^4.18.2", + "express": "^4.19.2", "http": "^0.0.1-security", "http-proxy": "^1.18.1", "jsdom": "^22.1.0", @@ -4232,9 +4232,9 @@ } }, "node_modules/@edsc/metadata-preview": { - "version": "1.3.19", - "resolved": "https://registry.npmjs.org/@edsc/metadata-preview/-/metadata-preview-1.3.19.tgz", - "integrity": "sha512-B9lIroxp/poIg3DS28HTd/RPkZUyoJNPZn9C68q0GX86egvb0fc113zosbf0The5pAOWJNM1NUSNVeuhOPAHoQ==", + "version": "1.4.0-beta.2", + "resolved": "https://registry.npmjs.org/@edsc/metadata-preview/-/metadata-preview-1.4.0-beta.2.tgz", + "integrity": "sha512-dSLfVZxt5iSSGXW33Y9xyUXAXc1p+X/n0D0WfAUmLlkCuFDQ0OUHLcnt1PNERVEn01a+IS/IQ+zVG+TYT5gIdQ==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -5779,6 +5779,18 @@ "node": ">=4.0" } }, + "node_modules/@noble/hashes": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz", + "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@node-saml/node-saml": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/@node-saml/node-saml/-/node-saml-4.0.5.tgz", @@ -5860,6 +5872,15 @@ "node": ">= 8" } }, + "node_modules/@paralleldrive/cuid2": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.2.2.tgz", + "integrity": "sha512-ZOBkgDwEdoYVlSeRbYYXs0S9MejQofiVYoTbKzy/6GQa39/q5tQU2IX46+shYnUkpEl3wc+J6wRlar7r2EK2xA==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "^1.1.5" + } + }, "node_modules/@parcel/watcher": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.1.tgz", @@ -15720,12 +15741,13 @@ } }, "node_modules/formidable": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.2.tgz", - "integrity": "sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.1.5.tgz", + "integrity": "sha512-Oz5Hwvwak/DCaXVVUtPn4oLMLLy1CdclLKO1LFgU7XzDpVMUU5UjlSLpGMocyQNNk8F6IJW9M/YdooSn2MRI+Q==", + "license": "MIT", "dependencies": { + "@paralleldrive/cuid2": "^2.2.2", "dezalgo": "^1.0.4", - "hexoid": "^1.0.0", "once": "^1.4.0", "qs": "^6.11.0" }, @@ -16483,14 +16505,6 @@ "he": "bin/he" } }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "engines": { - "node": ">=8" - } - }, "node_modules/history": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", @@ -26842,9 +26856,9 @@ } }, "node_modules/undici": { - "version": "6.21.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz", - "integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==", + "version": "6.21.3", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.21.3.tgz", + "integrity": "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw==", "license": "MIT", "engines": { "node": ">=18.17" @@ -27319,9 +27333,9 @@ } }, "node_modules/vite": { - "version": "4.5.13", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.13.tgz", - "integrity": "sha512-Hgp8IF/yZDzKsN1hQWOuQZbrKiaFsbQud+07jJ8h9m9PaHWkpvZ5u55Xw5yYjWRXwRQ4jwFlJvY7T7FUJG9MCA==", + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.14.tgz", + "integrity": "sha512-+v57oAaoYNnO3hIu5Z/tJRZjq5aHM2zDve9YZ8HngVHbhk66RStobhb1sqPMIPEleV6cNKYK4eGrAbE9Ulbl2g==", "license": "MIT", "dependencies": { "esbuild": "^0.18.10", @@ -27730,9 +27744,9 @@ } }, "node_modules/vite-node/node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { @@ -28533,9 +28547,9 @@ } }, "node_modules/vitest/node_modules/vite": { - "version": "5.4.18", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.18.tgz", - "integrity": "sha512-1oDcnEp3lVyHCuQ2YFelM4Alm2o91xNoMncRm1U7S+JdYfYOvbiGZ3/CxGttrOu2M/KcGz7cRC2DoNUA6urmMA==", + "version": "5.4.19", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz", + "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index ceb167610..5a4ed627f 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@apollo/client": "^3.8.5", - "@edsc/metadata-preview": "^1.3.19", + "@edsc/metadata-preview": "^1.4.0-beta.2", "@node-saml/node-saml": "^4.0.5", "@rjsf/core": "^5.15.0", "@rjsf/utils": "^5.15.0", @@ -96,7 +96,7 @@ "eslint-plugin-jsx-a11y": "^6.7.1", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "express": "^4.18.2", + "express": "^4.19.2", "http": "^0.0.1-security", "http-proxy": "^1.18.1", "jsdom": "^22.1.0", diff --git a/setup/setupCmr.js b/setup/setupCmr.js index d407a064d..fb145c8fa 100644 --- a/setup/setupCmr.js +++ b/setup/setupCmr.js @@ -580,7 +580,8 @@ const insertMetadata = async () => { let url const headers = { 'Content-Type': contentType, - Authorization: systemToken + Authorization: systemToken, + 'Cmr-Validate-Keywords': 'false' } if (collectionUri.includes('EDF_DEV06')) { diff --git a/static/src/js/components/MetadataPreview/MetadataPreview.jsx b/static/src/js/components/MetadataPreview/MetadataPreview.jsx index 6f1eac59f..0f9a4b066 100644 --- a/static/src/js/components/MetadataPreview/MetadataPreview.jsx +++ b/static/src/js/components/MetadataPreview/MetadataPreview.jsx @@ -3,7 +3,8 @@ import { CollectionPreview, ServicePreview, ToolPreview, - VariablePreview + VariablePreview, + VisualizationPreview } from '@edsc/metadata-preview' import { useParams } from 'react-router' import { useSuspenseQuery } from '@apollo/client' @@ -124,6 +125,16 @@ const MetadataPreview = ({ /> ) } + { + conceptType === 'Visualization' && ( + + ) + } ) diff --git a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx index bdb7f2984..3b2ba1f28 100644 --- a/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx +++ b/static/src/js/components/MetadataPreview/__tests__/MetadataPreview.test.jsx @@ -2,7 +2,8 @@ import { CollectionPreview, ServicePreview, ToolPreview, - VariablePreview + VariablePreview, + VisualizationPreview } from '@edsc/metadata-preview' import { render, waitFor } from '@testing-library/react' import { userEvent } from '@testing-library/user-event' @@ -24,7 +25,8 @@ import { mockCollectionWithAssociatedVariables, mockServiceDraft, mockToolDraft, - mockVariableDraft + mockVariableDraft, + mockVisualizationDraft } from './__mocks__/MatadataPreviewMocks' vi.mock('@edsc/metadata-preview') @@ -236,6 +238,73 @@ describe('MetadataPreview', () => { }) }) + describe('when the conceptType is Visualization draft', () => { + test('renders a Visualization Preview component', async () => { + setup({ + overrideProps: { + conceptId: 'VISD000000-MMT', + conceptType: 'Visualization' + }, + mock: [{ + request: { + query: conceptTypeDraftQueries.Visualization, + variables: { + params: { + conceptId: 'VISD000000-MMT', + conceptType: 'Visualization' + }, + variableParams: null + } + }, + result: { + data: { + draft: mockVisualizationDraft + } + } + }], + initialEntries: '/drafts/visualizations/VISD000000-MMT' + }) + + await waitFor(() => { + expect(VisualizationPreview).toHaveBeenCalledWith({ + cmrHost: 'http://example.com', + conceptId: 'VISD000000-MMT', + conceptType: 'visualization-draft', + conceptUrlTemplate: '/{conceptType}/{conceptId}', + isPlugin: true, + visualization: { + __typename: 'Visualization', + conceptId: 'VISD0000000000-CMR', + description: 'Draft test description', + generation: {}, + identifier: 'Extra Data', + metadataSpecification: { + url: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + name: 'Visualization', + version: '1.1.0' + }, + pageTitle: 'Creating Test 3', + name: 'Creating Test 3', + nativeId: 'Visualization-1303', + providerId: 'MMT_1', + revisionDate: '2025-04-25T17:25:17.825Z', + revisionId: '1', + scienceKeywords: null, + spatialExtent: null, + specification: {}, + subtitle: null, + temporalExtents: null, + title: 'Draft test title', + ummMetadata: null, + visualizationType: 'tiles' + } + }, {}) + }) + + expect(VisualizationPreview).toHaveBeenCalledTimes(1) + }) + }) + describe('when the conceptType is Variable draft', () => { test('renders a Variable Preview component', async () => { setup({ diff --git a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js index 26c4bbd46..e96d5afdc 100644 --- a/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js +++ b/static/src/js/components/MetadataPreview/__tests__/__mocks__/MatadataPreviewMocks.js @@ -1,5 +1,6 @@ export const mockCollection = { abstract: "The 2012 Environmental Performance Index (EPI) ranks 132 countries on 22 performance indicators in the following 10 policy categories: environmental burden of disease, water (effects on human health), air pollution (effects on human health), air pollution (ecosystem effects), water resources (ecosystem effects), biodiversity and habitat, forestry, fisheries, agriculture and climate change. These categories track performance and progress on two broad policy objectives, environmental health and ecosystem vitality. Each indicator has an associated environmental public health or ecosystem sustainability target. The EPI's proximity-to-target methodology facilitates cross-country comparisons among economic and regional peer groups.\n\n\n\n\nThe Pilot Trend Environmental Performance Index (Trend EPI) ranks countries on the change in their environmental performance over the last decade. As a complement to the EPI, the Trend EPI shows who is improving and who is declining over time.\n\n\n\n\nThe 2012 EPI and Pilot Trend EPI were formally released in Davos, Switzerland, at the annual meeting of the World Economic Forum on January 27, 2012. These are the result of collaboration between the Yale Center for Environmental Law and Policy (YCELP) and the Columbia University Center for International Earth Science Information Network (CIESIN). The Interactive Website for the 2012 EPI is at http://epi.yale.edu/.", + associationDetails: [], accessConstraints: { description: 'None' }, @@ -1560,6 +1561,11 @@ export const mockCollection = { }, versionDescription: null, versionId: '2012.00', + visualizations: { + count: 0, + items: null, + __typename: 'VisualizationList' + }, revisions: { count: 8, items: [ @@ -1652,6 +1658,7 @@ export const mockCollectionWithAssociatedVariables = { ] }, associatedDois: null, + associationDetails: [], collectionCitations: null, collectionProgress: 'COMPLETE', conceptId: 'C1200000104-MMT_2', @@ -3293,6 +3300,11 @@ export const mockCollectionWithAssociatedVariables = { }, versionDescription: null, versionId: '2012.00', + visualizations: { + count: 0, + items: null, + __typename: 'VisualizationList' + }, revisions: { count: 8, items: [ @@ -3629,3 +3641,215 @@ export const mockVariableDraft = { __typename: 'Draft' } + +export const mockVisualizationDraft = { + conceptId: 'VISD000000-MMT', + conceptType: 'visualization-draft', + deleted: false, + name: 'Visualization Draft Preview Test', + description: 'MODIS Terra Corrected Reflectance True Color imagery shows land surface, ocean and atmospheric features by combining three different channels (bands) of the sensor data. The image has been enhanced through processing, including atmospheric correction for aerosols, to improve the visual depiction of the land surface while maintaining realistic colors.', + generation: { + sourceProjection: 'EPSG:4326', + sourceResolution: 'Native', + sourceFormat: 'GeoTIFF', + sourceColorModel: 'Full-Color RGB', + sourceCoverage: 'Granule', + outputProjection: 'EPSG:4326', + outputResolution: '250m', + outputFormat: 'JPEG' + }, + identifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + metadataSpecification: { + url: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + name: 'Visualization', + version: '1.1.0' + }, + pageTitle: 'MODIS_Terra_Corrected_Reflectance_TrueColor', + nativeId: 'edsCoolVisualization', + providerId: 'LARC', + revisionDate: '2025-05-17T01:21:05.615Z', + revisionId: '1', + previewMetadata: { + conceptId: 'VISD0000000000-CMR', + name: 'Visualization Draft Preview Test', + description: 'Draft test description', + generation: {}, + identifier: 'Extra Data', + metadataSpecification: { + url: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + name: 'Visualization', + version: '1.1.0' + }, + pageTitle: 'Creating Test 3', + nativeId: 'Visualization-1303', + providerId: 'MMT_1', + revisionDate: '2025-04-25T17:25:17.825Z', + revisionId: '1', + scienceKeywords: null, + spatialExtent: null, + specification: {}, + subtitle: null, + temporalExtents: null, + title: 'Draft test title', + ummMetadata: null, + visualizationType: 'tiles', + __typename: 'Visualization' + }, + ummMetadata: { + ConceptIds: [ + { + Type: 'STD', + Value: 'C1000000001-EARTHDATA', + DataCenter: 'MODAPS', + ShortName: 'MODIS_Terra_CorrectedReflectance', + Title: 'MODIS/Terra Corrected Reflectance True Color', + Version: '6.1' + } + ], + SpatialExtent: { + GranuleSpatialRepresentation: 'GEODETIC', + HorizontalSpatialDomain: { + Geometry: { + CoordinateSystem: 'GEODETIC', + BoundingRectangles: [ + { + WestBoundingCoordinate: -180, + NorthBoundingCoordinate: 90, + EastBoundingCoordinate: 180, + SouthBoundingCoordinate: -90 + } + ] + } + } + }, + VisualizationType: 'tiles', + Title: 'MODIS Terra Corrected Reflectance (True Color)', + ScienceKeywords: [ + { + Category: 'EARTH SCIENCE', + Topic: 'SPECTRAL/ENGINEERING', + Term: 'VISIBLE WAVELENGTHS', + VariableLevel1: 'REFLECTANCE' + }, + { + Category: 'EARTH SCIENCE', + Topic: 'ATMOSPHERIC OPTICS', + Term: 'ATMOSPHERIC TRANSMITTANCE', + VariableLevel1: 'ATMOSPHERIC TRANSPARENCY' + } + ], + TemporalExtents: [ + { + RangeDateTimes: [ + { + BeginningDateTime: '2002-05-01T00:00:00Z', + EndingDateTime: '2023-12-31T23:59:59Z' + } + ], + EndsAtPresentFlag: true + } + ], + Specification: { + ProductIdentification: { + InternalIdentifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + StandardOrNRTExternalIdentifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + BestAvailableExternalIdentifier: 'MODIS_Terra_CorrectedReflectance', + GIBSTitle: 'Corrected Reflectance (True Color)', + WorldviewTitle: 'Corrected Reflectance (True Color)', + WorldviewSubtitle: 'Terra / MODIS' + }, + ProductMetadata: { + ParameterUnits: [ + null + ], + InternalIdentifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + SourceDatasets: [ + 'C1000000001-EARTHDATA' + ], + TemporalCoverage: '2002-05-01/P1D', + RepresentingDatasets: [ + 'C1000000001-EARTHDATA' + ], + 'wmts:Dimension': { + Identifier: 'Time', + UOM: 'ISO8601', + Default: '2023-12-31', + Current: true, + Value: [ + '2002-05-01/2023-12-31/P1D' + ] + }, + OrbitDirection: [ + 'descending' + ], + Measurement: 'Corrected Reflectance', + ScienceParameters: [ + 'reflectance' + ], + AscendingOrDescending: 'Both', + Daynight: [ + 'day' + ], + NativeSpatialCoverage: [ + -90, + -180, + 90, + 180 + ], + 'wmts:Format': [ + 'image/jpeg' + ], + UpdateInterval: 180, + OrbitTracks: [ + 'OrbitTracks_Terra_Descending' + ], + LayerPeriod: 'Daily', + Ongoing: true, + 'ows:Metadata': [ + { + 'xlink:Href': 'https://gibs.earthdata.nasa.gov/colormaps/v1.3/MODIS_Corrected_Reflectance_TrueColor.xml', + 'xlink:Role': 'http://earthdata.nasa.gov/gibs/metadata-type/colormap/1.3', + 'xlink:Title': 'GIBS Color Map: Data - RGB Mapping', + 'xlink:Type': 'simple' + } + ], + 'ows:Identifier': 'MODIS_Terra_CorrectedReflectance_TrueColor', + WGS84SpatialCoverage: [ + -90, + -180, + 90, + 180 + ], + GranuleOrComposite: 'Granule', + ColorMap: 'MODIS_Corrected_Reflectance_TrueColor', + DataDayBreak: '00:00:00Z', + VisualizationLatency: '4 hours', + 'wmts:TileMatrixSetLink': { + TileMatrixSet: '250m' + }, + RetentionPeriod: 365 + } + }, + Generation: { + SourceProjection: 'EPSG:4326', + SourceResolution: 'Native', + SourceFormat: 'GeoTIFF', + SourceColorModel: 'Full-Color RGB', + SourceCoverage: 'Granule', + OutputProjection: 'EPSG:4326', + OutputResolution: '250m', + OutputFormat: 'JPEG' + }, + Description: 'MODIS Terra Corrected Reflectance True Color imagery shows land surface, ocean and atmospheric features by combining three different channels (bands) of the sensor data. The image has been enhanced through processing, including atmospheric correction for aerosols, to improve the visual depiction of the land surface while maintaining realistic colors.', + Subtitle: 'Terra / MODIS', + Name: 'MODIS_Terra_Corrected_Reflectance_TrueColor', + Identifier: 'MODIS_Terra_CorrectedReflectance_TrueColor', + MetadataSpecification: { + URL: 'https://cdn.earthdata.nasa.gov/umm/visualization/v1.1.0', + Name: 'Visualization', + Version: '1.1.0' + } + }, + visualizationType: 'tiles', + __typename: 'Visualization' +} diff --git a/static/src/js/operations/queries/getCollection.js b/static/src/js/operations/queries/getCollection.js index 7765e7cdb..3bcf81729 100644 --- a/static/src/js/operations/queries/getCollection.js +++ b/static/src/js/operations/queries/getCollection.js @@ -117,6 +117,14 @@ export const GET_COLLECTION = gql` url } } + visualizations { + count + items { + conceptId + name + type: visualizationType + } + } ummMetadata useConstraints userId diff --git a/static/src/js/operations/queries/getVisualization.js b/static/src/js/operations/queries/getVisualization.js index 195af5255..122fb4ff0 100644 --- a/static/src/js/operations/queries/getVisualization.js +++ b/static/src/js/operations/queries/getVisualization.js @@ -8,6 +8,7 @@ export const GET_VISUALIZATION = gql` generation identifier metadataSpecification + name, pageTitle: name nativeId providerId @@ -16,6 +17,13 @@ export const GET_VISUALIZATION = gql` revisions { count } + collections { + count + items { + conceptId + title + } + } scienceKeywords spatialExtent specification diff --git a/static/src/js/operations/queries/getVisualizationDraft.js b/static/src/js/operations/queries/getVisualizationDraft.js index f71055b46..1554255c1 100644 --- a/static/src/js/operations/queries/getVisualizationDraft.js +++ b/static/src/js/operations/queries/getVisualizationDraft.js @@ -18,6 +18,7 @@ export const VISUALIZATION_DRAFT = gql` generation identifier metadataSpecification + name, pageTitle: name nativeId providerId diff --git a/static/src/js/operations/queries/getVisualizationDrafts.js b/static/src/js/operations/queries/getVisualizationDrafts.js index 710f99850..da4199502 100644 --- a/static/src/js/operations/queries/getVisualizationDrafts.js +++ b/static/src/js/operations/queries/getVisualizationDrafts.js @@ -1,7 +1,7 @@ import { gql } from '@apollo/client' export const GET_VISUALIZATION_DRAFTS = gql` - query VaisualizationDrafts($params: DraftsInput) { + query VisualizationDrafts($params: DraftsInput) { drafts(params: $params) { count items {