@@ -8,6 +8,7 @@ import useToggle from '@common/hooks/useToggle';
8
8
import downloadService from '@common/services/downloadService' ;
9
9
import { PaginatedList } from '@common/services/types/pagination' ;
10
10
import { Dictionary } from '@common/types' ;
11
+ import appendQuery from '@common/utils/url/appendQuery' ;
11
12
import Page from '@frontend/components/Page' ;
12
13
import withAxiosHandler from '@frontend/middleware/ssr/withAxiosHandler' ;
13
14
import DataSetFileApiQuickStart from '@frontend/modules/data-catalogue/components/DataSetFileApiQuickStart' ;
@@ -29,6 +30,7 @@ import { logEvent } from '@frontend/services/googleAnalyticsService';
29
30
import { dehydrate , QueryClient } from '@tanstack/react-query' ;
30
31
import classNames from 'classnames' ;
31
32
import { GetServerSideProps } from 'next' ;
33
+ import { useRouter } from 'next/router' ;
32
34
import React , { useEffect , useState } from 'react' ;
33
35
34
36
// TODO EES-4856
@@ -66,14 +68,12 @@ export type PageSectionId = keyof PageSection;
66
68
interface Props {
67
69
apiDataSet ?: ApiDataSet ;
68
70
apiDataSetVersion ?: ApiDataSetVersion ;
69
- apiDataSetVersions ?: PaginatedList < ApiDataSetVersion > ;
70
71
dataSetFile : DataSetFile ;
71
72
}
72
73
73
74
export default function DataSetFilePage ( {
74
75
apiDataSet,
75
76
apiDataSetVersion,
76
- apiDataSetVersions,
77
77
dataSetFile,
78
78
} : Props ) {
79
79
const [ activeSection , setActiveSection ] =
@@ -115,7 +115,16 @@ export default function DataSetFilePage({
115
115
pageSections [ pageSectionId ]
116
116
) {
117
117
setActiveSection ( pageSectionId ) ;
118
- window . history . pushState ( { } , '' , `#${ pageSectionId } ` ) ;
118
+
119
+ const queryString = (
120
+ window . location . search || window . location . hash
121
+ ) . split ( '?' ) [ 1 ] ;
122
+
123
+ const url = queryString
124
+ ? `#${ pageSectionId } ?${ queryString } `
125
+ : `#${ pageSectionId } ` ;
126
+
127
+ window . history . pushState ( { } , '' , url ) ;
119
128
}
120
129
} ) ;
121
130
} , 10 ) ;
@@ -219,19 +228,19 @@ export default function DataSetFilePage({
219
228
onClickDownload = { handleDownload }
220
229
/>
221
230
222
- { apiDataSetVersions && apiDataSetVersion && (
223
- < DataSetFileApiVersionHistory
224
- currentVersion = { apiDataSetVersion . version }
225
- dataSetFileId = { dataSetFile . id }
226
- dataSetVersions = { apiDataSetVersions }
227
- />
228
- ) }
229
231
{ apiDataSet && apiDataSetVersion && (
230
- < DataSetFileApiQuickStart
231
- id = { apiDataSet . id }
232
- name = { apiDataSet . title }
233
- version = { apiDataSetVersion . version }
234
- />
232
+ < >
233
+ < DataSetFileApiVersionHistory
234
+ apiDataSetId = { apiDataSet ?. id }
235
+ currentVersion = { apiDataSetVersion . version }
236
+ />
237
+
238
+ < DataSetFileApiQuickStart
239
+ id = { apiDataSet . id }
240
+ name = { apiDataSet . title }
241
+ version = { apiDataSetVersion . version }
242
+ />
243
+ </ >
235
244
) }
236
245
</ div >
237
246
</ div >
@@ -243,7 +252,7 @@ export default function DataSetFilePage({
243
252
244
253
export const getServerSideProps : GetServerSideProps < Props > = withAxiosHandler (
245
254
async context => {
246
- const { dataSetFileId } = context . query as Dictionary < string > ;
255
+ const { dataSetFileId, versionPage } = context . query as Dictionary < string > ;
247
256
248
257
const queryClient = new QueryClient ( ) ;
249
258
@@ -256,25 +265,25 @@ export const getServerSideProps: GetServerSideProps<Props> = withAxiosHandler(
256
265
} ;
257
266
258
267
if ( dataSetFile . api ) {
259
- const [ apiDataSet , apiDataSetVersion , apiDataSetVersions ] =
260
- await Promise . all ( [
261
- await queryClient . fetchQuery (
262
- apiDataSetQueries . getDataSet ( dataSetFile . api . id ) ,
263
- ) ,
264
- await queryClient . fetchQuery (
265
- apiDataSetQueries . getDataSetVersion (
266
- dataSetFile . api . id ,
267
- dataSetFile . api . version ,
268
- ) ,
269
- ) ,
270
- await queryClient . fetchQuery (
271
- apiDataSetQueries . listDataSetVersions ( dataSetFile . api . id ) ,
268
+ const [ apiDataSet , apiDataSetVersion ] = await Promise . all ( [
269
+ await queryClient . fetchQuery (
270
+ apiDataSetQueries . getDataSet ( dataSetFile . api . id ) ,
271
+ ) ,
272
+ await queryClient . fetchQuery (
273
+ apiDataSetQueries . getDataSetVersion (
274
+ dataSetFile . api . id ,
275
+ dataSetFile . api . version ,
272
276
) ,
273
- ] ) ;
277
+ ) ,
278
+ await queryClient . fetchQuery (
279
+ apiDataSetQueries . listDataSetVersions ( dataSetFile . api . id , {
280
+ page : versionPage ? Number ( versionPage ) : 1 ,
281
+ } ) ,
282
+ ) ,
283
+ ] ) ;
274
284
275
285
props . apiDataSet = apiDataSet ;
276
286
props . apiDataSetVersion = apiDataSetVersion ;
277
- props . apiDataSetVersions = apiDataSetVersions ;
278
287
}
279
288
280
289
return {
0 commit comments