Skip to content

Commit 17ffedf

Browse files
committed
refactor: update DownloadTable and getReleases to include version 1.21.5 and clean up unused code
1 parent 1325e2d commit 17ffedf

File tree

2 files changed

+32
-40
lines changed

2 files changed

+32
-40
lines changed

components/Sections/download/DownloadTable.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,29 @@
22

33
import { AgGridReact } from 'ag-grid-react';
44
import '@/styles/ag-grid-theme.css';
5-
import { Suspense, useEffect, useState } from 'react';
5+
import { useEffect, useState } from 'react';
66
import { getParsedReleases } from '@/lib/getReleases.tsx';
77
import { parseNumber } from '@/lib/utils';
88
import Downloads from './downloads';
99
import Link from 'next/link';
10-
import { Checkbox } from '@/components/ui/checkbox';
1110
// import Latest from './Latest';
1211

1312
export default function DownloadTable() {
1413
const [rowData, setRowData] = useState([]);
1514
const [loading, setLoading] = useState(true);
16-
const [showAllVers, setShowAllVers] = useState(0);
1715
const [colDefs, setColDefs]: any[] = useState();
1816

1917
useEffect(() => {
2018
const versionColumns = [
19+
{ field: '1215', headerName: '1.21.5' },
2120
{ field: '1211', headerName: '1.21.1' },
2221
{ field: '121', headerName: '1.21' },
2322
{ field: '1206', headerName: '1.20.6' },
2423
{ field: '1204', headerName: '1.20.4' },
25-
{ field: '1203', headerName: '1.20.3' },
2624
{ field: '1202', headerName: '1.20.2' },
2725
{ field: '1201', headerName: '1.20.1' },
2826
{ field: '120', headerName: '1.20' },
27+
{ field: '1194', headerName: '1.19.4' },
2928
];
3029

3130
setColDefs([

lib/getReleases.tsx

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
'use server';
22

33
type Assets = {
4+
'1215': null | React.ReactElement;
45
'1211': null | React.ReactElement;
56
'121': null | React.ReactElement;
67
'1206': null | React.ReactElement;
7-
'1205': null | React.ReactElement;
88
'1204': null | React.ReactElement;
9-
'1203': null | React.ReactElement;
109
'1202': null | React.ReactElement;
1110
'1201': null | React.ReactElement;
1211
'120': null | React.ReactElement;
1312
'1194': null | React.ReactElement;
14-
'1193': null | React.ReactElement;
15-
'1192': null | React.ReactElement;
16-
'1191': null | React.ReactElement;
17-
'119': null | React.ReactElement;
1813
};
1914

2015
// Releases are fetched and stripped to nearly the first 15 releases because
2116
// the first few releases meet our format requirements so can be
2217
// easy to parse.
18+
// these versions, overall, only support these versions: 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.4, 1.20.6, 1.21, 1.21.5
2319
export async function getReleases(total: number = 30) {
2420
try {
2521
const headers = process.env.GITHUB_PAT
@@ -30,10 +26,14 @@ export async function getReleases(total: number = 30) {
3026
{ method: 'GET', headers, next: { revalidate: 300 } },
3127
);
3228
const releases = await response.json();
33-
return releases.slice(
34-
0,
35-
releases.findIndex((r: any) => r.name === 'Release 1.20.2-1.1.4'),
29+
const fixedReleases = releases.map((r: any) =>
30+
r.name === 'Release 1.2' ? { ...r, name: 'Release 1.2.0' } : r,
3631
);
32+
return fixedReleases;
33+
// return fixedReleases.slice(
34+
// 0,
35+
// fixedReleases.findIndex((r: any) => r.name === 'Release 1.20.2-1.1.4'),
36+
// );
3737
} catch {
3838
throw new Error('Failed to fetch from API');
3939
}
@@ -84,20 +84,15 @@ export async function getParsedReleases() {
8484

8585
let downloads = 0;
8686
let assetsData: Assets = {
87+
'1215': null,
8788
'1211': null,
8889
'121': null,
8990
'1206': null,
90-
'1205': null,
9191
'1204': null,
92-
'1203': null,
9392
'1202': null,
9493
'1201': null,
9594
'120': null,
9695
'1194': null,
97-
'1193': null,
98-
'1192': null,
99-
'1191': null,
100-
'119': null,
10196
};
10297

10398
release.assets.forEach((asset: any) => {
@@ -106,18 +101,16 @@ export async function getParsedReleases() {
106101
let assetName = asset.name;
107102
let assetURL = asset.browser_download_url;
108103

109-
if (assetName.includes('1.21.1')) {
104+
if (assetName.includes('1.21.5')) {
105+
assetsData['1215'] = assetURL;
106+
} else if (assetName.includes('1.21.1')) {
110107
assetsData['1211'] = assetURL;
111108
} else if (assetName.includes('1.21')) {
112109
assetsData['121'] = assetURL;
113110
} else if (assetName.includes('1.20.6')) {
114111
assetsData['1206'] = assetURL;
115-
} else if (assetName.includes('1.20.5')) {
116-
assetsData['1205'] = assetURL;
117112
} else if (assetName.includes('1.20.4')) {
118113
assetsData['1204'] = assetURL;
119-
} else if (assetName.includes('1.20.3')) {
120-
assetsData['1203'] = assetURL;
121114
} else if (assetName.includes('1.20.2')) {
122115
assetsData['1202'] = assetURL;
123116
} else if (assetName.includes('1.20.1')) {
@@ -126,14 +119,6 @@ export async function getParsedReleases() {
126119
assetsData['120'] = assetURL;
127120
} else if (assetName.includes('1.19.4')) {
128121
assetsData['1194'] = assetURL;
129-
} else if (assetName.includes('1.19.3')) {
130-
assetsData['1193'] = assetURL;
131-
} else if (assetName.includes('1.19.2')) {
132-
assetsData['1192'] = assetURL;
133-
} else if (assetName.includes('1.19.1')) {
134-
assetsData['1191'] = assetURL;
135-
} else if (assetName.includes('1.19')) {
136-
assetsData['119'] = assetURL;
137122
}
138123
});
139124

@@ -147,14 +132,22 @@ export async function getParsedReleases() {
147132

148133
const mappings = await getCCMappings();
149134

150-
Object.entries(mappings).forEach(([key, value]: any) => {
151-
const version = key.replaceAll('.', '');
152-
const mappedVersion =
153-
typeof value === 'string' ? value.replaceAll('.', '') : null;
154-
155-
if (mappedVersion !== null && mappings[version] !== mappedVersion) {
156-
parsedReleases[0][version] = parsedReleases[0][mappedVersion];
157-
}
135+
Object.entries(mappings).forEach(([versionKey, mappedVersion]) => {
136+
const key = versionKey.replaceAll('.', '');
137+
const mappedKey =
138+
typeof mappedVersion === 'string'
139+
? mappedVersion.replaceAll('.', '')
140+
: null;
141+
142+
parsedReleases.forEach((release: any) => {
143+
if (mappedKey && release[mappedKey] && !release[key]) {
144+
// Copy the download URL from the mapped version
145+
release[key] = release[mappedKey];
146+
} else if (!mappedKey) {
147+
// If not mapped (null), ensure it's explicitly set to null
148+
release[key] = null;
149+
}
150+
});
158151
});
159152

160153
return parsedReleases;

0 commit comments

Comments
 (0)