Skip to content

Commit c2b5529

Browse files
committed
Link directly to mojira.dev filtered issue list
1 parent 9540a46 commit c2b5529

8 files changed

Lines changed: 101 additions & 147 deletions

File tree

src/app/components/versions/Issue.tsx

Lines changed: 0 additions & 15 deletions
This file was deleted.

src/app/components/versions/IssueList.tsx

Lines changed: 0 additions & 22 deletions
This file was deleted.

src/app/components/versions/VersionDetail.tsx

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { useLocale } from '../../contexts/index.js'
44
import { useAsync } from '../../hooks/useAsync.js'
55
import { useSearchParam } from '../../hooks/useSearchParam.js'
66
import type { VersionMeta } from '../../services/index.js'
7-
import { fetchChangelogs, getArticleLink } from '../../services/index.js'
7+
import { fetchChangelogs } from '../../services/index.js'
88
import { Octicon } from '../Octicon.js'
9-
import { ChangelogList, IssueList, VersionDiff, VersionMetaData } from './index.js'
9+
import { ChangelogList, VersionDiff, VersionMetaData } from './index.js'
1010

11-
const Tabs = ['changelog', 'diff', 'fixes']
11+
const Tabs = ['changelog', 'diff']
1212
const WIKI_PAGE_PREFIX = 'https://minecraft.wiki/w/Java_Edition_'
1313

1414
interface Props {
@@ -31,6 +31,7 @@ export function VersionDetail({ id, version }: Props) {
3131
changes?.filter(c => c.version === id || (c.group === id && !c.tags.includes('obsolete'))),
3232
[id, changes])
3333

34+
const fixesLink = version && getFixesLink(version.id)
3435
const articleLink = version && getArticleLink(version.id)
3536
const wikiPageLink = version && WIKI_PAGE_PREFIX + version.name
3637

@@ -55,6 +56,10 @@ export function VersionDetail({ id, version }: Props) {
5556
{Tabs.map(t => <Link key={t} class={tab === t ? 'selected' : ''} href={`/versions/?id=${id}&tab=${t}`}>
5657
{locale(`versions.${t}`)}
5758
</Link>)}
59+
<a href={fixesLink} target="_blank">
60+
{locale('versions.fixes')}
61+
{Octicon.link_external}
62+
</a>
5863
{articleLink && <a href={articleLink} target="_blank">
5964
{locale('versions.article')}
6065
{Octicon.link_external}
@@ -67,7 +72,6 @@ export function VersionDetail({ id, version }: Props) {
6772
<div class="version-tab">
6873
{tab === 'changelog' && <ChangelogList changes={filteredChangelogs} defaultOrder="asc" />}
6974
{tab === 'diff' && <VersionDiff version={id} />}
70-
{tab === 'fixes' && <IssueList version={id} />}
7175
</div>
7276
</div>
7377
</>
@@ -76,3 +80,96 @@ export function VersionDetail({ id, version }: Props) {
7680
export function releaseDate(version: VersionMeta) {
7781
return new Date(version.release_time).toLocaleDateString(undefined, { day: 'numeric', month: 'short', year: 'numeric' })
7882
}
83+
84+
const FIXES_PREFIX = 'https://mojira.dev/?project=MC&resolution=Fixed&fix_version='
85+
86+
function getFixesLink(version: string) {
87+
let match
88+
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-snapshot-(\d+)$/)) && match[1] && match[2]) {
89+
return FIXES_PREFIX + encodeURIComponent(`${match[1]} Snapshot ${match[2]}`)
90+
}
91+
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-pre(\d+)$/)) && match[1] && match[2]) {
92+
return FIXES_PREFIX + encodeURIComponent(`${match[1]} Pre-Release ${match[2]}`)
93+
}
94+
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-rc(\d+)$/)) && match[1]) {
95+
return FIXES_PREFIX + encodeURIComponent(`${match[1]} Release Candidate ${match[2]}`)
96+
}
97+
return FIXES_PREFIX + encodeURIComponent(version)
98+
}
99+
100+
const ARTICLE_PREFIX = 'https://www.minecraft.net/article/'
101+
const ARTICLE_OVERRIDES = new Map(Object.entries({
102+
'1.16-pre2': 'minecraft-1-16-pre-release-1',
103+
'1.16-pre4': 'minecraft-1-16-pre-release-3',
104+
'1.16-pre5': 'minecraft-1-16-pre-release-3',
105+
'1.16-pre7': 'minecraft-1-16-pre-release-6',
106+
'1.16-pre8': 'minecraft-1-16-pre-release-6',
107+
'1.16-rc1': 'minecraft-1-16-release-candidate',
108+
'1.16': 'nether-update-java',
109+
'1.16.2-pre3': 'minecraft-1-16-2-pre-release-2',
110+
'1.16.2-rc1': 'minecraft-1-16-2-pre-release-2',
111+
'1.16.2-rc2': 'minecraft-1-16-2-pre-release-2',
112+
'1.17-pre3': 'minecraft-1-17-pre-release-2',
113+
'1.17-pre4': 'minecraft-1-17-pre-release-2',
114+
'1.17-pre5': 'minecraft-1-17-pre-release-2',
115+
'1.17.1-pre3': 'minecraft-1-17-1-pre-release-2',
116+
'1.17-rc2': 'minecraft-1-17-release-candidate-1',
117+
'1.17': 'caves---cliffs--part-i-out-today-java',
118+
'1.17.1-rc2': 'minecraft-1-17-1-release-candidate-1',
119+
'1.18-pre3': 'minecraft-1-18-pre-release-2',
120+
'1.18-pre4': 'minecraft-1-18-pre-release-2',
121+
'1.18-pre5': 'minecraft-1-18-pre-release-2',
122+
'1.18-pre7': 'minecraft-1-18-pre-release-6',
123+
'1.18-pre8': 'minecraft-1-18-pre-release-6',
124+
'1.18-rc2': 'minecraft-1-18-release-candidate-1',
125+
'1.18-rc3': 'minecraft-1-18-release-candidate-1',
126+
'1.18-rc4': 'minecraft-1-18-release-candidate-1',
127+
'1.18': 'caves---cliffs--part-ii-out-today-java',
128+
'1.18.1-rc2': 'minecraft-1-18-1-release-candidate-1',
129+
'1.18.1-rc3': 'minecraft-1-18-1-release-candidate-1',
130+
'1.18.2-pre3': 'minecraft-1-18-2-pre-release-2',
131+
'1.18.2-pre5': 'minecraft-1-18-2-pre-release-4',
132+
'1.19-pre3': 'minecraft-1-19-pre-release-2',
133+
'1.19-pre5': 'minecraft-1-19-pre-release-4',
134+
'1.19-rc2': 'minecraft-1-19-release-candidate-1',
135+
'1.19': 'the-wild-update-out-today-java',
136+
'1.19.1-pre4': 'minecraft-1-19-1-pre-release-3',
137+
'1.19.2-rc2': 'minecraft-1-19-2-release-candidate-1',
138+
'1.19.3-pre2': 'minecraft-1-19-3-pre-release-1',
139+
'1.19.3-rc2': 'minecraft-1-19-3-release-candidate-1',
140+
'1.19.4-pre3': 'minecraft-1-19-4-pre-release-2',
141+
'1.19.4-rc2': 'minecraft-1-19-4-release-candidate-1',
142+
'1.20-pre3': 'minecraft-1-20-pre-release-2',
143+
'1.20-pre4': 'minecraft-1-20-pre-release-2',
144+
'1.20-pre6': 'minecraft-1-20-pre-release-5',
145+
'1.20': 'trails-tales-update-out-today-java',
146+
'1.20.1': 'minecraft--java-edition-1-20-1',
147+
'1.20.2-pre2': 'minecraft-1-20-2-pre-release-1',
148+
'23w43b': 'minecraft-snapshot-23w43b',
149+
'24w03b': 'minecraft-snapshot-24w03b',
150+
'24w05b': 'minecraft-snapshot-24w05b',
151+
}))
152+
153+
function getArticleLink(version: string): string | undefined {
154+
const override = ARTICLE_OVERRIDES.get(version)
155+
if (override) {
156+
return ARTICLE_PREFIX + override
157+
}
158+
let match
159+
if ((match = version.match(/^(\d\dw\d\d)[a-z]$/)) && match[1]) {
160+
return ARTICLE_PREFIX + 'minecraft-snapshot-' + match[1] + 'a'
161+
}
162+
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-snapshot-(\d+)$/)) && match[1] && match[2]) {
163+
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-snapshot-' + match[2]
164+
}
165+
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-pre(\d+)$/)) && match[1] && match[2]) {
166+
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-pre-release-' + match[2]
167+
}
168+
if ((match = version.match(/^(\d+\.\d+(?:\.\d+)?)-rc(\d+)$/)) && match[1]) {
169+
return ARTICLE_PREFIX + 'minecraft-' + match[1].replaceAll('.', '-') + '-release-candidate-' + match[2]
170+
}
171+
if (version.match(/^\d+\.\d+(\.\d+)?$/)) {
172+
return ARTICLE_PREFIX + 'minecraft-java-edition-' + version.replaceAll('.', '-')
173+
}
174+
return undefined
175+
}

src/app/components/versions/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
export * from '../Badge.jsx'
22
export * from './ChangelogEntry.js'
33
export * from './ChangelogList.js'
4-
export * from './IssueList.jsx'
54
export * from './VersionDetail.js'
65
export * from './VersionDiff.jsx'
76
export * from './VersionEntry.js'

src/app/services/Article.ts

Lines changed: 0 additions & 77 deletions
This file was deleted.

src/app/services/DataFetcher.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ const mcmetaUrl = 'https://raw.githubusercontent.com/misode/mcmeta'
1414
const mcmetaTarballUrl = 'https://github.com/misode/mcmeta/tarball'
1515
const vanillaMcdocUrl = 'https://raw.githubusercontent.com/SpyglassMC/vanilla-mcdoc'
1616
const changesUrl = 'https://raw.githubusercontent.com/misode/technical-changes'
17-
const fixesUrl = 'https://raw.githubusercontent.com/misode/mcfixes'
1817
const versionDiffUrl = 'https://mcmeta-diff.misode.workers.dev'
1918
const whatsNewUrl = 'https://whats-new.misode.workers.dev'
2019

@@ -309,31 +308,6 @@ export async function fetchChangelogs(): Promise<Change[]> {
309308
}
310309
}
311310

312-
export interface Bugfix {
313-
id: string,
314-
summary: string,
315-
labels: string[],
316-
status: string,
317-
confirmation_status: string,
318-
categories: string[],
319-
priority: string,
320-
fix_versions: string[],
321-
creation_date: string,
322-
resolution_date: string,
323-
updated_date: string,
324-
watches: number,
325-
votes: number,
326-
}
327-
328-
export async function fetchBugfixes(version: string): Promise<Bugfix[]> {
329-
try {
330-
const fixes = await cachedFetch<Bugfix[]>(`${fixesUrl}/main/versions/${version}.json`, { refresh: true })
331-
return fixes
332-
} catch (e) {
333-
throw new Error(`Error occured while fetching bugfixes for version ${version}: ${message(e)}`)
334-
}
335-
}
336-
337311
export interface GitHubCommitFile {
338312
sha: string,
339313
filename: string,

src/app/services/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
export * from './Article.js'
21
export * from './DataFetcher.js'
32
export * from './Sharing.js'
43
export * from './Source.js'

src/locales/en.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,6 @@
362362
"versions.data_version": "Data version",
363363
"versions.diff": "Mcmeta diff",
364364
"versions.fixes": "Fixed bugs",
365-
"versions.fixes.no_results": "No fixes",
366365
"versions.latest_release": "Latest release",
367366
"versions.latest_snapshot": "Latest snapshot",
368367
"versions.minecraft_versions": "Minecraft Versions",

0 commit comments

Comments
 (0)