forked from didirus/AstralRinth
* feat: Moderation Dashboard Overhaul * fix: lint issues * fix: issues * fix: report layout * fix: lint * fix: impl quick replies * fix: remove test qr * feat: individual report page + use new backend * feat: memoize filtering * feat: apply optimizations to moderation queue * fix: lint issues * feat: impl quick reply functionality * fix: top level await * fix: dep issue * fix: dep issue x2 * fix: dep issue * feat: intl extract * fix: dev-187 * fix: dev-186 & review project btn * fix: dev-176 * remove redundant moderation button from user dropdown * correct a msg and add admin to read filter --------- Co-authored-by: coolbot100s <76798835+coolbot100s@users.noreply.github.com>
29 lines
892 B
Vue
29 lines
892 B
Vue
<script setup lang="ts">
|
|
import type { Report } from "@modrinth/utils";
|
|
import { enrichReportBatch } from "~/helpers/moderation.ts";
|
|
import ModerationReportCard from "~/components/ui/moderation/ModerationReportCard.vue";
|
|
|
|
const { params } = useRoute();
|
|
const reportId = params.id as string;
|
|
|
|
const { data: report } = await useAsyncData(`moderation-report-${reportId}`, async () => {
|
|
try {
|
|
const report = (await useBaseFetch(`report/${reportId}`, { apiVersion: 3 })) as Report;
|
|
const enrichedReport = (await enrichReportBatch([report]))[0];
|
|
return enrichedReport;
|
|
} catch (error) {
|
|
console.error("Error fetching report:", error);
|
|
throw createError({
|
|
statusCode: 404,
|
|
statusMessage: "Report not found",
|
|
});
|
|
}
|
|
});
|
|
</script>
|
|
|
|
<template>
|
|
<div class="flex flex-col gap-3">
|
|
<ModerationReportCard v-if="report" :report="report" />
|
|
</div>
|
|
</template>
|