From 8de5220070955d7481d2c3b5fa519ec0afdab082 Mon Sep 17 00:00:00 2001 From: dhaverd Date: Tue, 21 Jul 2026 15:04:55 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=D0=BF=D0=B5=D1=80=D0=B5=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0=D0=BB=20=D0=BA=D0=B0=D1=87=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B2=D0=B0=20=D0=B2=20=D1=80=D0=B5=D0=B9=D1=82=D0=B8?= =?UTF-8?q?=D0=BD=D0=B3=20=D0=BA=D0=B0=D1=87=D0=B5=D1=81=D1=82=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/collections/qualityRatingLabelText.ts | 78 +++++++++++++++++++++ app/components/reportDialog/qualityItem.tsx | 30 ++++++++ 2 files changed, 108 insertions(+) create mode 100644 app/collections/qualityRatingLabelText.ts create mode 100644 app/components/reportDialog/qualityItem.tsx diff --git a/app/collections/qualityRatingLabelText.ts b/app/collections/qualityRatingLabelText.ts new file mode 100644 index 0000000..7714d27 --- /dev/null +++ b/app/collections/qualityRatingLabelText.ts @@ -0,0 +1,78 @@ +export const afkLabels: { [index: string]: string } = { + 0: 'No AFK', + 0.5: 'Tactical break', + 1: 'Briefly away', + 1.5: 'Statue mode', + 2: 'Freezing up', + 2.5: 'Ghost teammate', + 3: 'Free meat', + 3.5: 'Dead weight', + 4: 'Match ruiner', + 4.5: 'Game quitter', + 5: 'Report bait', +}; +export const cheaterLabels: { [index: string]: string } = { + 0: 'Cheats not detected', + 0.5: 'Gaming chair', + 1: 'Pure skill', + 1.5: 'Matrix dodger', + 2: 'Code wizard', + 2.5: 'Wall observer', + 3: 'Aim botter', + 3.5: 'Script kiddie', + 4: 'Vac receiver', + 4.5: 'Skill issuer', + 5: 'Trash cheater', +}; +export const grieferLabels: { [index: string]: string } = { + 0: 'Not a griefer', + 0.5: 'Clown', + 1: 'Content creator', + 1.5: 'Friendly fire', + 2: 'Chaos enjoyer', + 2.5: 'Team flasher', + 3: 'Secret enemy', + 3.5: 'Sabotage master', + 4: 'Fun vampire', + 4.5: 'Toxic troll', + 5: 'Game terrorist', +}; +export const toxicLabels: { [index: string]: string } = { + 0: 'Nice player', + 0.5: 'Passion speaker', + 1: 'Coach mode', + 1.5: 'Keyboard warrior', + 2: 'Tilt machine', + 2.5: 'Cry baby', + 3: 'Salt miner', + 3.5: 'Rage quitter', + 4: 'Mic blaster', + 4.5: 'Radioactive waste', + 5: 'Chat ban', +}; +export const uselessLabels: { [index: string]: string } = { + 0: 'Useful', + 0.5: 'Cute newbie', + 1: 'Tourist player', + 1.5: 'Bot simulator', + 2: 'Walking ward', + 2.5: 'Decoration item', + 3: 'Zero impact', + 3.5: 'Free kill', + 4: 'XP deliverer', + 4.5: 'Dead weight', + 5: 'Space taker', +}; +export const smurfLabels: { [index: string]: string } = { + 0: 'Straight as an arrow', + 0.5: 'Hidden coach', + 1: 'Pro disguise', + 1.5: 'Rank hider', + 2: 'Smurf enjoyer', + 2.5: 'Noob stomper', + 3: 'Ego booster', + 3.5: 'Lobby ruiner', + 4: 'Fun killer', + 4.5: 'Rank thief', + 5: 'Matchmaking cancer', +}; \ No newline at end of file diff --git a/app/components/reportDialog/qualityItem.tsx b/app/components/reportDialog/qualityItem.tsx new file mode 100644 index 0000000..8186e69 --- /dev/null +++ b/app/components/reportDialog/qualityItem.tsx @@ -0,0 +1,30 @@ +import {IconButton, Rating} from "@mui/material"; +import CloseIcon from '@mui/icons-material/Close'; +import NameField from "~/components/itemDialog/NameField"; +import {useState} from "react"; + +export default function QualityItem({ name, value, setValue, labels }:{ name: string|undefined, value: number, setValue: Function, labels: { [key: string]: string} }) { + const [hoverText, setHoverText] = useState(0); + + return ( + <> +
+ {name} +
+ { + setValue(newValue ? newValue : 0); + }} + onChangeActive={(event, newHover) => { + setHoverText(newHover); + }} + /> + {labels[hoverText !== -1 ? hoverText : value]} +
+
+ + ) +} \ No newline at end of file