Link prior moderation actions to case decisions
This commit is contained in:
@@ -70,10 +70,18 @@ export const moderationActionLabels: Record<string, string> = {
|
||||
'case.updated': 'Case updated',
|
||||
'case.evidence_attached': 'Evidence attached',
|
||||
'case.restriction': 'Restriction linked to case',
|
||||
'case.action_linked': 'Existing action linked to case',
|
||||
'link-case-action': 'Existing action linked to case',
|
||||
'player.note': 'Private player note',
|
||||
'runtime.configure': 'Integration configuration requested'
|
||||
};
|
||||
|
||||
export function moderationActionName(kind: string): string {
|
||||
return (
|
||||
moderationActionLabels[kind] ?? (kind === 'ban' ? 'Ban' : kind === 'mute' ? 'Mute' : kind)
|
||||
);
|
||||
}
|
||||
|
||||
export function moderationEventDetail(detail: string, action: string): string {
|
||||
if (action.startsWith('case.')) {
|
||||
try {
|
||||
@@ -110,6 +118,18 @@ export function moderationEventDetail(detail: string, action: string): string {
|
||||
return `${value.count} archived chat ${value.count === 1 ? 'entry' : 'entries'} attached from match #${value.matchId}.`;
|
||||
if (action === 'case.restriction' && typeof value.reason === 'string')
|
||||
return `${value.kind === 'ban' ? 'Ban' : 'Mute'} · ${display(value.scope)} scope\n${value.reason}`;
|
||||
if (
|
||||
typeof value.reason === 'string' &&
|
||||
value.actionReference &&
|
||||
typeof value.actionReference === 'object'
|
||||
) {
|
||||
const reference = value.actionReference as { type?: unknown; id?: unknown };
|
||||
if (
|
||||
(reference.type === 'restriction' || reference.type === 'action') &&
|
||||
typeof reference.id === 'string'
|
||||
)
|
||||
return `${value.reason}\nReferenced ${reference.type === 'restriction' ? 'restriction' : 'action'}: ${reference.id}`;
|
||||
}
|
||||
} catch {
|
||||
// Older case events and decision reasons are plain staff-authored text.
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user