mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 03:55:59 +00:00
move hidden to severity
This commit is contained in:
@@ -170,12 +170,15 @@ function getSeverityBadgeColor(
|
||||
severity: Labrinth.TechReview.Internal.DelphiSeverity | undefined,
|
||||
): string {
|
||||
switch (severity) {
|
||||
case 'malware':
|
||||
case 'severe':
|
||||
return 'border-red/60 bg-highlight-red text-red'
|
||||
case 'high':
|
||||
return 'border-orange/60 bg-highlight-orange text-orange'
|
||||
case 'medium':
|
||||
return 'border-green/60 bg-highlight-green text-green'
|
||||
case 'hidden':
|
||||
return 'border-divider bg-surface-2 text-secondary'
|
||||
case 'low':
|
||||
default:
|
||||
return 'border-blue/60 bg-highlight-blue text-blue'
|
||||
|
||||
@@ -225,7 +225,10 @@ async function updateGlobalIssueDetail(
|
||||
])
|
||||
}
|
||||
|
||||
const severityOrder = { severe: 3, high: 2, medium: 1, low: 0 } as Record<string, number>
|
||||
const severityOrder = { malware: 4, severe: 3, high: 2, medium: 1, low: 0, hidden: -1 } as Record<
|
||||
string,
|
||||
number
|
||||
>
|
||||
|
||||
type DetailDecision = 'safe' | 'malware' | 'pending'
|
||||
type DetailDecisionScope = 'local' | 'global'
|
||||
@@ -489,12 +492,15 @@ function handleTabClick(index: number) {
|
||||
|
||||
function getSeverityBadgeColor(severity: Labrinth.TechReview.Internal.DelphiSeverity): string {
|
||||
switch (severity) {
|
||||
case 'malware':
|
||||
case 'severe':
|
||||
return 'border-red/60 border bg-highlight-red text-red'
|
||||
case 'high':
|
||||
return 'border-orange/60 border bg-highlight-orange text-orange'
|
||||
case 'medium':
|
||||
return 'border-green/60 border bg-highlight-green text-green'
|
||||
case 'hidden':
|
||||
return 'border-divider border bg-surface-2 text-secondary'
|
||||
case 'low':
|
||||
default:
|
||||
return 'border-blue/60 border bg-highlight-blue text-blue'
|
||||
@@ -513,12 +519,15 @@ function truncateMiddle(str: string, maxLength: number = 120): string {
|
||||
|
||||
const severityColor = computed(() => {
|
||||
switch (highestSeverity.value) {
|
||||
case 'malware':
|
||||
case 'severe':
|
||||
return 'text-red bg-highlight-red border-solid border-[1px] border-red'
|
||||
case 'high':
|
||||
return 'text-orange bg-highlight-orange border-solid border-[1px] border-orange'
|
||||
case 'medium':
|
||||
return 'text-green bg-highlight-green border-solid border-[1px] border-green'
|
||||
case 'hidden':
|
||||
return 'text-secondary bg-surface-2 border-solid border-[1px] border-divider'
|
||||
case 'low':
|
||||
default:
|
||||
return 'text-blue bg-highlight-blue border-solid border-[1px] border-blue'
|
||||
|
||||
@@ -140,12 +140,15 @@ const latestLocalTrace = computed(() => trace.value?.local_traces.at(-1))
|
||||
|
||||
function getSeverityBadgeColor(severity: Labrinth.TechReview.Internal.DelphiSeverity): string {
|
||||
switch (severity) {
|
||||
case 'malware':
|
||||
case 'severe':
|
||||
return 'border-red/60 bg-highlight-red text-red'
|
||||
case 'high':
|
||||
return 'border-orange/60 bg-highlight-orange text-orange'
|
||||
case 'medium':
|
||||
return 'border-green/60 bg-highlight-green text-green'
|
||||
case 'hidden':
|
||||
return 'border-divider bg-surface-2 text-secondary'
|
||||
case 'low':
|
||||
default:
|
||||
return 'border-blue/60 bg-highlight-blue text-blue'
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
</div>
|
||||
<p class="m-0 text-sm text-secondary">
|
||||
Return <code>null</code> when the rule does not match, or a map containing
|
||||
<code>severity</code> and/or <code>hidden</code> when it does.
|
||||
<code>severity</code> when it does.
|
||||
</p>
|
||||
|
||||
<details class="rounded-xl border border-divider bg-bg-raised p-3">
|
||||
@@ -136,7 +136,10 @@
|
||||
<p class="m-0 text-xs font-semibold uppercase tracking-wide text-secondary">
|
||||
New state
|
||||
</p>
|
||||
<div v-if="example.effect?.hidden" class="flex items-center gap-2 text-secondary">
|
||||
<div
|
||||
v-if="example.effectiveSeverity === 'hidden'"
|
||||
class="flex items-center gap-2 text-secondary"
|
||||
>
|
||||
<EyeOffIcon class="size-5" />
|
||||
<strong class="text-contrast">Hidden from reports</strong>
|
||||
</div>
|
||||
@@ -327,11 +330,11 @@
|
||||
</div>
|
||||
<div class="flex min-w-0 flex-wrap items-center gap-2">
|
||||
<span
|
||||
v-if="!detail.hidden"
|
||||
v-if="detail.severity !== 'hidden'"
|
||||
class="rounded-full border px-2 py-0.5 text-xs font-semibold capitalize"
|
||||
:class="getSeverityBadgeColor(detail.severity ?? detail.original_severity)"
|
||||
:class="getSeverityBadgeColor(detail.severity)"
|
||||
>
|
||||
{{ detail.severity ?? detail.original_severity }}
|
||||
{{ detail.severity }}
|
||||
</span>
|
||||
<span v-else class="flex items-center gap-1 text-xs font-semibold text-secondary">
|
||||
<EyeOffIcon class="size-4" />
|
||||
@@ -426,7 +429,7 @@ import type { Component } from 'vue'
|
||||
import IssueDetailPath from '~/components/ui/moderation/IssueDetailPath.vue'
|
||||
|
||||
const DEFAULT_RULE = `input.trace.issue_type == "OBFUSCATED_NAMES"
|
||||
? {"severity": "low", "hidden": false}
|
||||
? {"severity": "low"}
|
||||
: null`
|
||||
const RULE_EDITOR_OPTIONS: Partial<Ace.EditorOptions> = {
|
||||
useWorker: false,
|
||||
@@ -575,12 +578,15 @@ const previewExamples = computed(() =>
|
||||
|
||||
function getSeverityBadgeColor(severity: Labrinth.TechReview.Internal.DelphiSeverity): string {
|
||||
switch (severity) {
|
||||
case 'malware':
|
||||
case 'severe':
|
||||
return 'border-red/60 bg-highlight-red text-red'
|
||||
case 'high':
|
||||
return 'border-orange/60 bg-highlight-orange text-orange'
|
||||
case 'medium':
|
||||
return 'border-green/60 bg-highlight-green text-green'
|
||||
case 'hidden':
|
||||
return 'border-divider bg-surface-2 text-secondary'
|
||||
case 'low':
|
||||
default:
|
||||
return 'border-blue/60 bg-highlight-blue text-blue'
|
||||
|
||||
Reference in New Issue
Block a user