diff --git a/frontend-new/src/components/modals/FlagModal.vue b/frontend-new/src/components/modals/FlagModal.vue
new file mode 100644
index 000000000..903123617
--- /dev/null
+++ b/frontend-new/src/components/modals/FlagModal.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Flag
+
+
+
+
+
diff --git a/frontend-new/src/components/projects/ProjectHeader.vue b/frontend-new/src/components/projects/ProjectHeader.vue
index 64a125347..81f9cdd8a 100644
--- a/frontend-new/src/components/projects/ProjectHeader.vue
+++ b/frontend-new/src/components/projects/ProjectHeader.vue
@@ -13,6 +13,7 @@ import { useContext } from "vite-ssr/vue";
import Tooltip from "~/components/design/Tooltip.vue";
import { useAuthStore } from "~/store/auth";
import { useNotificationStore } from "~/store/notification";
+import FlagModal from "~/components/modals/FlagModal.vue";
const ctx = useContext();
const i18n = useI18n();
@@ -111,6 +112,8 @@ function toggleWatch() {
{{ watchingCount }}
+
+
diff --git a/frontend-new/src/store/backendData.ts b/frontend-new/src/store/backendData.ts
index 0673d64d2..bc3517cd7 100644
--- a/frontend-new/src/store/backendData.ts
+++ b/frontend-new/src/store/backendData.ts
@@ -1,7 +1,7 @@
import { defineStore } from "pinia";
import { computed, ref } from "vue";
-import { IPlatform, IProjectCategory, IPrompt, IVisibility, Color } from "hangar-internal";
+import { IPlatform, IProjectCategory, IPrompt, IVisibility, Color, FlagReason } from "hangar-internal";
import { NamedPermission, Platform, ProjectCategory, Prompt } from "~/types/enums";
import { Announcement as AnnouncementObject, Announcement, IPermission, Role } from "hangar-api";
@@ -45,6 +45,7 @@ export const useBackendDataStore = defineStore("backendData", () => {
const orgRoles = ref([]);
const projectRoles = ref([]);
const channelColors = ref([]);
+ const flagReasons = ref([]);
async function initBackendData() {
try {
@@ -85,6 +86,7 @@ export const useBackendDataStore = defineStore("backendData", () => {
fetchIfNeeded(async () => useInternalApi("data/orgRoles", false), orgRoles),
fetchIfNeeded(async () => useInternalApi("data/channelColors", false), channelColors),
fetchIfNeeded(async () => useInternalApi("data/projectRoles", false), projectRoles),
+ fetchIfNeeded(async () => useInternalApi("data/flagReasons", false), flagReasons),
]);
} catch (e) {
console.error("ERROR FETCHING BACKEND DATA");
@@ -112,6 +114,7 @@ export const useBackendDataStore = defineStore("backendData", () => {
orgRoles,
projectRoles,
channelColors,
+ flagReasons,
initBackendData,
visibleCategories,
visiblePlatforms,