Skip to content

Commit 8f24b07

Browse files
authored
Merge pull request #1571 from visualize-admin/fix/full-data-download-merged-cubes
fix: Full data download (merged cubes)
2 parents 449d78c + 3386197 commit 8f24b07

4 files changed

Lines changed: 21 additions & 21 deletions

File tree

app/browser/dataset-preview.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ export const DataSetPreview = ({
202202
<DataDownloadMenu
203203
dataSource={dataSource}
204204
title={dataCubeMetadata.title}
205-
filters={[variables.cubeFilter]}
205+
filters={variables.cubeFilter}
206206
/>
207207
</Flex>
208208
<FirstTenRowsCaption />

app/components/chart-footnotes.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import {
1919
} from "@/graphql/hooks";
2020
import { Icon, getChartIcon } from "@/icons";
2121
import { useLocale } from "@/locales/use-locale";
22+
import { assert } from "@/utils/assert";
2223
import { useEmbedOptions } from "@/utils/embed";
2324
import { makeOpenDataLink } from "@/utils/opendata";
2425

@@ -121,6 +122,10 @@ export const ChartFootnotes = ({
121122
const sparqlEditorUrl = sparqlEditorUrls?.find(
122123
(d) => d.cubeIri === dataCubeMetadata.iri
123124
)?.url;
125+
const cubeQueryFilters = queryFilters.find(
126+
(f) => f.iri === dataCubeMetadata.iri
127+
);
128+
assert(cubeQueryFilters, "Cube query filters not found");
124129

125130
return (
126131
<Box key={dataCubeMetadata.iri} sx={{ mt: 2 }}>
@@ -206,7 +211,7 @@ export const ChartFootnotes = ({
206211
<DataDownloadMenu
207212
dataSource={dataSource}
208213
title={dataCubeMetadata.title}
209-
filters={queryFilters}
214+
filters={cubeQueryFilters}
210215
/>
211216
) : null}
212217
{showTableSwitch !== false ? (

app/components/data-download.spec.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,11 @@ import { DataCubeObservationFilter } from "@/graphql/query-hooks";
55

66
describe("getFullDataDownloadFilters", () => {
77
it("should not have componentIris", () => {
8-
const rawFilters: DataCubeObservationFilter[] = [
9-
{
10-
iri: "ABC",
11-
componentIris: ["DEF"],
12-
},
13-
{
14-
iri: "GHI",
15-
},
16-
];
8+
const rawFilters: DataCubeObservationFilter = {
9+
iri: "ABC",
10+
componentIris: ["DEF"],
11+
};
1712
const filters = getFullDataDownloadFilters(rawFilters);
18-
expect(filters.some((f) => get(f, "componentIris"))).toBeFalsy();
13+
expect(get(filters, "componentIris")).toBeFalsy();
1914
});
2015
});

app/components/data-download.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ export const DataDownloadMenu = memo(
179179
title,
180180
}: {
181181
dataSource: DataSource;
182-
filters: DataCubeObservationFilter[];
182+
filters: DataCubeObservationFilter;
183183
title: string;
184184
}) => {
185185
return (
@@ -201,7 +201,7 @@ const DataDownloadInnerMenu = ({
201201
}: {
202202
dataSource: DataSource;
203203
fileName: string;
204-
filters: DataCubeObservationFilter[];
204+
filters: DataCubeObservationFilter;
205205
}) => {
206206
const [state] = useDataDownloadState();
207207
const popupState = usePopupState({
@@ -239,7 +239,7 @@ const DataDownloadInnerMenu = ({
239239
sx: { width: 200, pt: 1, pb: 2 },
240240
}}
241241
>
242-
{filters.some((f) => f.filters) && (
242+
{filters.filters && (
243243
<DataDownloadMenuSection
244244
dataSource={dataSource}
245245
subheader={
@@ -271,9 +271,9 @@ const DataDownloadInnerMenu = ({
271271
* request), so we do not pass any componentIris here
272272
* */
273273
export const getFullDataDownloadFilters = (
274-
filters: DataCubeObservationFilter[]
274+
filters: DataCubeObservationFilter
275275
) => {
276-
return filters.map((d) => ({ iri: d.iri }));
276+
return { iri: filters.iri };
277277
};
278278

279279
const DataDownloadMenuSection = ({
@@ -285,7 +285,7 @@ const DataDownloadMenuSection = ({
285285
dataSource: DataSource;
286286
subheader: ReactNode;
287287
fileName: string;
288-
filters?: DataCubeObservationFilter[];
288+
filters?: DataCubeObservationFilter;
289289
}) => {
290290
return (
291291
<>
@@ -318,7 +318,7 @@ const DownloadMenuItem = ({
318318
dataSource: DataSource;
319319
fileName: string;
320320
fileFormat: FileFormat;
321-
filters?: DataCubeObservationFilter[];
321+
filters?: DataCubeObservationFilter;
322322
}) => {
323323
const locale = useLocale();
324324
const i18n = useI18n();
@@ -398,13 +398,13 @@ const DownloadMenuItem = ({
398398
sourceType: dataSource.type,
399399
sourceUrl: dataSource.url,
400400
locale,
401-
cubeFilters: filters,
401+
cubeFilters: [filters],
402402
}),
403403
executeDataCubesObservationsQuery(client, {
404404
sourceType: dataSource.type,
405405
sourceUrl: dataSource.url,
406406
locale,
407-
cubeFilters: filters,
407+
cubeFilters: [filters],
408408
}),
409409
]);
410410

0 commit comments

Comments
 (0)