feat: continue work

This commit is contained in:
Calum 2025-07-11 20:07:26 +01:00
parent b2978096fd
commit d33b06ea55
4 changed files with 46 additions and 14 deletions

View File

@ -8,14 +8,18 @@
</p>
<p v-else>You've been invited to join this project. Please accept or decline the invitation.</p>
<div class="input-group">
<button class="iconified-button brand-button" @click="acceptInvite()">
<CheckIcon />
Accept
</button>
<button class="iconified-button danger-button" @click="declineInvite()">
<XIcon />
Decline
</button>
<ButtonStyled color="brand">
<button class="brand-button" @click="acceptInvite()">
<CheckIcon />
Accept
</button>
</ButtonStyled>
<ButtonStyled color="red">
<button @click="declineInvite">
<XIcon />
Decline
</button>
</ButtonStyled>
</div>
</div>
<div
@ -31,12 +35,11 @@
<h2 class="my-0 mr-auto">Publishing checklist</h2>
</div>
<div class="input-group">
<button
:class="['square-button', !collapsed && '[&>svg]:rotate-180']"
@click="toggleCollapsed()"
>
<DropdownIcon class="duration-250 transition-transform ease-in-out" />
</button>
<ButtonStyled circular>
<button :class="!collapsed && '[&>svg]:rotate-180'" @click="toggleCollapsed()">
<DropdownIcon class="duration-250 transition-transform ease-in-out" />
</button>
</ButtonStyled>
</div>
</div>
<div v-if="!collapsed" class="grid-display width-16 mt-4">
@ -80,9 +83,11 @@ import {
LightBulbIcon,
TriangleAlertIcon,
DropdownIcon,
SendIcon,
} from "@modrinth/assets";
import { acceptTeamInvite, removeTeamMember } from "~/helpers/teams.js";
import { nags } from "@modrinth/moderation";
import { ButtonStyled } from "@modrinth/ui";
import type { Nag, NagContext, NagStatus } from "@modrinth/moderation";
import type { Project, User, Version } from "@modrinth/utils";
import type { Component } from "vue";
@ -138,8 +143,19 @@ const nagContext = computed<NagContext>(() => ({
versions: props.versions,
currentMember: props.currentMember as User,
currentRoute: props.routeName,
tags: props.tags,
submitProject: submitForReview,
}));
const submitForReview = async () => {
if (
!props.acknowledgedMessage ||
nags.value.filter((x) => x.condition && x.status === "required").length === 0
) {
await props.setProcessing();
}
};
const applicableNags = computed<Nag[]>(() => {
return nags.filter((nag) => {
return nag.shouldShow(nagContext.value);

View File

@ -2,6 +2,20 @@ import type { Nag, NagContext } from '../../types/nags'
import { formatProjectType } from '@modrinth/utils'
export const coreNags: Nag[] = [
{
id: 'moderator-feedback',
title: 'Review moderator feedback',
description: () =>
'Review any feedback from moderators regarding your project before resubmitting.',
status: 'suggestion',
shouldShow: (context: NagContext) =>
context.tags.rejectedStatuses.includes(context.project.status),
link: {
path: 'moderation',
title: 'Visit moderation thread',
shouldShow: (context: NagContext) => context.currentRoute !== 'type-id-moderation',
},
},
{
id: 'upload-version',
title: 'Upload a version',

View File

@ -32,6 +32,8 @@ export interface NagContext {
* The current route in the application.
*/
currentRoute: string
tags: any
submitProject: (...any: any) => any
}
/**