63
63
<h2 class =" m-0 text-lg font-extrabold" >{{ formatMessage(messages.formNotFor) }}</h2 >
64
64
<div class =" text-md flex items-center gap-2 font-semibold text-contrast" >
65
65
<XCircleIcon class =" h-8 w-8 shrink-0 text-brand-red" />
66
- <span >{{ formatMessage(messages.bugReports) }}</span >
66
+
67
+ <div class =" flex flex-col" >
68
+ <span >{{ formatMessage(messages.bugReports) }}</span >
69
+ <span v-if =" itemIssueTracker" class =" text-sm font-medium text-secondary" >
70
+ <IntlFormatted :message-id =" messages.bugReportsDescription" >
71
+ <template #issues-link =" { children } " >
72
+ <a class =" text-link" :href =" itemIssueTracker" target =" _blank" >
73
+ <component :is =" () => children" />
74
+ <ExternalIcon aria-hidden =" true" class =" mb-1 ml-1 h-2.5 w-2.5" />
75
+ </a >
76
+ </template >
77
+ </IntlFormatted >
78
+ </span >
79
+ </div >
67
80
</div >
68
81
<div class =" text-md flex items-center gap-2 font-semibold text-contrast" >
69
82
<XCircleIcon class =" h-8 w-8 shrink-0 text-brand-red" />
@@ -238,6 +251,7 @@ import {
238
251
AutoLink ,
239
252
} from " @modrinth/ui" ;
240
253
import {
254
+ ExternalIcon ,
241
255
LeftArrowIcon ,
242
256
RightArrowIcon ,
243
257
CheckIcon ,
@@ -289,6 +303,7 @@ const itemIcon = ref<string | Component | undefined>();
289
303
const itemName = ref <string | undefined >();
290
304
const itemLink = ref <string | undefined >();
291
305
const itemId = ref <string | undefined >();
306
+ const itemIssueTracker = ref <string | undefined >();
292
307
293
308
const reports = ref <Report []>([]);
294
309
const existingReport = computed (() =>
@@ -319,6 +334,7 @@ async function fetchItem() {
319
334
itemName .value = undefined ;
320
335
itemLink .value = undefined ;
321
336
itemId .value = undefined ;
337
+ itemIssueTracker .value = undefined ;
322
338
try {
323
339
if (reportItem .value === " project" ) {
324
340
const project = (await useBaseFetch (` project/${reportItemID .value } ` )) as Project ;
@@ -328,6 +344,7 @@ async function fetchItem() {
328
344
itemName .value = project .title ;
329
345
itemLink .value = ` /project/${project .id } ` ;
330
346
itemId .value = project .id ;
347
+ itemIssueTracker .value = project .issues_url ;
331
348
} else if (reportItem .value === " version" ) {
332
349
const version = (await useBaseFetch (` version/${reportItemID .value } ` )) as Version ;
333
350
currentVersion .value = version ;
@@ -540,6 +557,10 @@ const messages = defineMessages({
540
557
id: " report.not-for.bug-reports" ,
541
558
defaultMessage: " Bug reports" ,
542
559
},
560
+ bugReportsDescription: {
561
+ id: " report.not-for.bug-reports.description" ,
562
+ defaultMessage: " You can report bugs to their <issues-link>issue tracker</issues-link>." ,
563
+ },
543
564
dmcaTakedown: {
544
565
id: " report.not-for.dmca" ,
545
566
defaultMessage: " DMCA takedowns" ,
0 commit comments