+
+
Thread ID:
-
- updateThreadLocal()"
- />
-
-
- This thread is closed and new messages cannot be sent to it.
-
-
-
-
-
-
-
+
+ updateThreadLocal()"
/>
-
@@ -374,19 +424,179 @@ import {
import {
ButtonStyled,
Checkbox,
+ commonMessages,
CopyCode,
+ defineMessages,
injectNotificationManager,
+ IntlFormatted,
MarkdownEditor,
+ NewModal,
OverflowMenu,
+ useVIntl,
} from '@modrinth/ui'
-import Modal from '~/components/ui/Modal.vue'
import ThreadMessage from '~/components/ui/thread/ThreadMessage.vue'
import { useImageUpload } from '~/composables/image-upload.ts'
import { isApproved, isRejected } from '~/helpers/projects.js'
import { isStaff } from '~/helpers/users.js'
const { addNotification } = injectNotificationManager()
+const { formatMessage } = useVIntl()
+
+const messages = defineMessages({
+ resubmitModalHeaderResubmitting: {
+ id: 'conversation-thread.resubmit-modal.header.resubmitting',
+ defaultMessage: 'Resubmitting for review',
+ },
+ resubmitModalHeaderSubmitting: {
+ id: 'conversation-thread.resubmit-modal.header.submitting',
+ defaultMessage: 'Submitting for review',
+ },
+ resubmitModalDescription: {
+ id: 'conversation-thread.resubmit-modal.description',
+ defaultMessage:
+ "You're submitting
{projectTitle} to be reviewed again by the moderators.",
+ },
+ resubmitModalReminder: {
+ id: 'conversation-thread.resubmit-modal.reminder',
+ defaultMessage: 'Make sure you have addressed all the comments from the moderation team.',
+ },
+ resubmitModalWarning: {
+ id: 'conversation-thread.resubmit-modal.warning',
+ defaultMessage:
+ "Repeated submissions without addressing the moderators' comments may result in an account suspension.",
+ },
+ resubmitModalConfirmationDescription: {
+ id: 'conversation-thread.resubmit-modal.confirmation.description',
+ defaultMessage: 'Confirm I have addressed the messages from the moderators',
+ },
+ resubmitModalConfirmationLabel: {
+ id: 'conversation-thread.resubmit-modal.confirmation.label',
+ defaultMessage: "I confirm that I have properly addressed the moderators' comments.",
+ },
+ replyModalHeader: {
+ id: 'conversation-thread.reply-modal.header',
+ defaultMessage: 'Reply to thread',
+ },
+ replyModalDescription: {
+ id: 'conversation-thread.reply-modal.description',
+ defaultMessage:
+ 'Your project is already approved. As such, the moderation team does not actively monitor this thread. However, they may still see your message if there is a problem with your project.',
+ },
+ replyModalHelpCenterNote: {
+ id: 'conversation-thread.reply-modal.help-center-note',
+ defaultMessage:
+ 'If you need to get in contact with the moderation team, please use the
Modrinth Help Center and click the blue bubble in the bottom right corner to contact support.',
+ },
+ replyModalConfirmationDescription: {
+ id: 'conversation-thread.reply-modal.confirmation.description',
+ defaultMessage: 'Confirm moderators do not actively monitor this',
+ },
+ replyModalConfirmationLabel: {
+ id: 'conversation-thread.reply-modal.confirmation.label',
+ defaultMessage: 'I acknowledge that the moderators do not actively monitor the thread.',
+ },
+ closedThreadDescription: {
+ id: 'conversation-thread.closed-thread.description',
+ defaultMessage: 'This thread is closed and new messages cannot be sent to it.',
+ },
+ replyEditorPlaceholderReply: {
+ id: 'conversation-thread.reply-editor.placeholder.reply',
+ defaultMessage: 'Reply to thread...',
+ },
+ replyEditorPlaceholderSend: {
+ id: 'conversation-thread.reply-editor.placeholder.send',
+ defaultMessage: 'Send a message...',
+ },
+ actionResubmitForReview: {
+ id: 'conversation-thread.action.resubmit-for-review',
+ defaultMessage: 'Resubmit for review',
+ },
+ actionReplyToThread: {
+ id: 'conversation-thread.action.reply-to-thread',
+ defaultMessage: 'Reply to thread',
+ },
+ actionReopenThread: {
+ id: 'conversation-thread.action.reopen-thread',
+ defaultMessage: 'Reopen thread',
+ },
+ actionReply: {
+ id: 'conversation-thread.action.reply',
+ defaultMessage: 'Reply',
+ },
+ actionSend: {
+ id: 'conversation-thread.action.send',
+ defaultMessage: 'Send',
+ },
+ actionAddPrivateNote: {
+ id: 'conversation-thread.action.add-private-note',
+ defaultMessage: 'Add private note',
+ },
+ actionResubmitForReviewWithReply: {
+ id: 'conversation-thread.action.resubmit-for-review-with-reply',
+ defaultMessage: 'Resubmit for review with reply',
+ },
+ actionCloseWithReply: {
+ id: 'conversation-thread.action.close-with-reply',
+ defaultMessage: 'Close with reply',
+ },
+ actionCloseThread: {
+ id: 'conversation-thread.action.close-thread',
+ defaultMessage: 'Close thread',
+ },
+ actionApproveWithReply: {
+ id: 'conversation-thread.action.approve-with-reply',
+ defaultMessage: 'Approve with reply',
+ },
+ actionApprove: {
+ id: 'conversation-thread.action.approve',
+ defaultMessage: 'Approve',
+ },
+ actionRejectWithReply: {
+ id: 'conversation-thread.action.reject-with-reply',
+ defaultMessage: 'Reject with reply',
+ },
+ actionReject: {
+ id: 'conversation-thread.action.reject',
+ defaultMessage: 'Reject',
+ },
+ actionWithholdWithReply: {
+ id: 'conversation-thread.action.withhold-with-reply',
+ defaultMessage: 'Withhold with reply',
+ },
+ actionWithhold: {
+ id: 'conversation-thread.action.withhold',
+ defaultMessage: 'Withhold',
+ },
+ actionSetToDraftWithReply: {
+ id: 'conversation-thread.action.set-to-draft-with-reply',
+ defaultMessage: 'Set to draft with reply',
+ },
+ actionSetToDraft: {
+ id: 'conversation-thread.action.set-to-draft',
+ defaultMessage: 'Set to draft',
+ },
+ actionSendToReviewWithReply: {
+ id: 'conversation-thread.action.send-to-review-with-reply',
+ defaultMessage: 'Send to review with reply',
+ },
+ actionSendToReview: {
+ id: 'conversation-thread.action.send-to-review',
+ defaultMessage: 'Send to review',
+ },
+ errorSendingMessage: {
+ id: 'conversation-thread.error.sending-message',
+ defaultMessage: 'Error sending message',
+ },
+ errorClosingReport: {
+ id: 'conversation-thread.error.closing-report',
+ defaultMessage: 'Error closing report',
+ },
+ errorReopeningReport: {
+ id: 'conversation-thread.error.reopening-report',
+ defaultMessage: 'Error reopening report',
+ },
+})
const props = defineProps({
thread: {
@@ -532,7 +742,7 @@ async function sendReply(status = null, privateMessage = false) {
}
} catch (err) {
addNotification({
- title: 'Error sending message',
+ title: formatMessage(messages.errorSendingMessage),
text: err.data ? err.data.description : err,
type: 'error',
})
@@ -554,7 +764,7 @@ async function closeReport(reply) {
await updateThreadLocal()
} catch (err) {
addNotification({
- title: 'Error closing report',
+ title: formatMessage(messages.errorClosingReport),
text: err.data ? err.data.description : err,
type: 'error',
})
@@ -572,7 +782,7 @@ async function reopenReport() {
await updateThreadLocal()
} catch (err) {
addNotification({
- title: 'Error reopening report',
+ title: formatMessage(messages.errorReopeningReport),
text: err.data ? err.data.description : err,
type: 'error',
})
@@ -604,44 +814,8 @@ async function resubmit() {
}
const requestedStatus = computed(() => props.project.requested_status ?? 'approved')
-
-
-
+defineOptions({
+ inheritAttrs: false,
+})
+
diff --git a/apps/frontend/src/components/ui/thread/ThreadMessage.vue b/apps/frontend/src/components/ui/thread/ThreadMessage.vue
index 750187244c..0b483cf26d 100644
--- a/apps/frontend/src/components/ui/thread/ThreadMessage.vue
+++ b/apps/frontend/src/components/ui/thread/ThreadMessage.vue
@@ -1,10 +1,11 @@
@@ -22,11 +23,6 @@
/>
-
{{ members[message.author_id].username }}
@@ -35,6 +31,11 @@
v-else-if="members[message.author_id].role === 'admin'"
v-tooltip="'Modrinth Team'"
/>
+
submitted the project for review.
+
+ reviewed the project and set its status to .
+
+
+ reverted this project back to a .
+
changed the project's status from to
.
@@ -126,7 +133,7 @@
-
+
diff --git a/apps/frontend/src/pages/[type]/[id]/settings/index.vue b/apps/frontend/src/pages/[type]/[id]/settings/index.vue
index a96fe4bad4..9e755434f0 100644
--- a/apps/frontend/src/pages/[type]/[id]/settings/index.vue
+++ b/apps/frontend/src/pages/[type]/[id]/settings/index.vue
@@ -230,7 +230,7 @@
/>
-
+
@@ -242,36 +242,6 @@
:disabled="!hasPermission"
:max-height="500"
/>
-
If approved by the moderators:
-
- -
-
-
- {{ hasModifiedVisibility() ? 'Will be v' : 'V' }}isible in search
-
- -
-
-
- {{ hasModifiedVisibility() ? 'Will be v' : 'V' }}isible on profile
-
- -
-
-
- {{ hasModifiedVisibility() ? 'Will be v' : 'V' }}isible via URL
-
-