feat: add simple mode editor to the moderation checklist (#4127)

* fix: remove prettier, not needed.

* feat: simple/advanced mode for the checklist
This commit is contained in:
IMB11
2025-08-08 20:37:06 +01:00
committed by GitHub
parent ad208536b0
commit d7f1029b54
4 changed files with 32 additions and 14 deletions

View File

@@ -50,13 +50,35 @@
</div>
<div v-else-if="generatedMessage">
<div>
<ButtonStyled>
<button class="mb-2" @click="useSimpleEditor = !useSimpleEditor">
<template v-if="!useSimpleEditor">
<ToggleLeftIcon aria-hidden="true" />
Use simple mode
</template>
<template v-else>
<ToggleRightIcon aria-hidden="true" />
Use advanced mode
</template>
</button>
</ButtonStyled>
<MarkdownEditor
v-if="!useSimpleEditor"
v-model="message"
:max-height="400"
placeholder="No message generated."
:disabled="false"
:heading-buttons="false"
/>
<textarea
v-else
v-model="message"
type="text"
class="bg-bg-input h-[400px] w-full rounded-lg border border-solid border-divider px-3 py-2 font-mono text-base"
placeholder="No message generated."
autocomplete="off"
@input="persistState"
/>
</div>
</div>
<div v-else-if="isModpackPermissionsStage">
@@ -324,6 +346,8 @@ import {
CheckIcon,
KeyboardIcon,
EyeOffIcon,
ToggleLeftIcon,
ToggleRightIcon,
} from "@modrinth/assets";
import {
checklist,
@@ -368,7 +392,6 @@ import {
type Stage,
finalPermissionMessages,
} from "@modrinth/moderation";
import * as prettier from "prettier";
import ModpackPermissionsFlow from "./ModpackPermissionsFlow.vue";
import KeybindsModal from "./ChecklistKeybindsModal.vue";
import { useModerationStore } from "~/store/moderation.ts";
@@ -392,6 +415,7 @@ const isModpackPermissionsStage = computed(() => {
return currentStageObj.value.id === "modpack-permissions";
});
const useSimpleEditor = ref(false);
const message = ref("");
const generatedMessage = ref(false);
const loadingMessage = ref(false);
@@ -1118,19 +1142,7 @@ async function generateMessage() {
}
}
try {
const formattedMessage = await prettier.format(fullMessage, {
parser: "markdown",
printWidth: 80,
proseWrap: "always",
tabWidth: 2,
useTabs: false,
});
message.value = formattedMessage;
} catch (formattingError) {
console.warn("Failed to format markdown, using original:", formattingError);
message.value = fullMessage;
}
message.value = fullMessage;
generatedMessage.value = true;
} catch (error) {