Files
d4rkbot/frontend/src/module-icons.jsx
T
D4rkst3randClaude Fable 5 c6977f9c4a
Deploy / check (push) Has been cancelled
Deploy / deploy (push) Has been cancelled
Modul-Tab im Plugin-Raster: Filter-Reiter und Symbole
Vorbild war das MEE6-Dashboard: Kategorie-Reiter über einem Raster aus
Karten, jede mit einem eigenen Symbol. Inhaltlich war unser Modul-Tab
schon dort — es fehlten genau diese zwei Dinge.

Die Gruppen standen als Überschriften untereinander, was bei 35 Karten
eine lange Rolle ergab. Jetzt filtern Reiter mit Anzahl: Alle, die vier
Gruppen, dazu „Noch einzurichten" und „Ausgeschaltet". Die beiden letzten
sind bewusst dabei — mit genau diesen Fragen kommt man am häufigsten her.
Die Gruppe steht klein unter dem Namen, damit sie im gefilterten Raster
nicht verlorengeht.

Jede Karte hat eine Symbol-Kachel, die bei laufendem Modul in der
Markenfarbe leuchtet und sonst grau bleibt — man erkennt eine Funktion
damit am Bild statt am Lesen. Die Zuordnung lag schon in der
Funktionsseite; sie liegt jetzt in module-icons.jsx, damit beide Seiten
dieselbe benutzen.

Farbige Kachelbilder wie bei MEE6 gibt es bewusst nicht: die Strichsymbole
passen zum Rest der Oberfläche, bunte Kacheln wären ein Fremdkörper.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-31 17:22:04 +02:00

33 lines
1.8 KiB
React

// Ein Symbol je Bot-Funktion. Bewusst im Frontend und nicht im Modul-Register:
// der Bot-Code soll nichts über die Oberfläche wissen müssen.
//
// Genutzt von der Produktseite (/features) und den Modul-Karten in der Config —
// deshalb liegt die Zuordnung hier und nicht in einer der beiden Seiten.
import {
IconDevlog, IconCommits, IconChangelog, IconActivity, IconMessage, IconPlay,
IconLevel, IconStar, IconGallery, IconThumbsUp, IconGiveaway, IconBirthday,
IconEvents, IconGame, IconKey, IconRoles, IconApplications, IconShield,
IconArchive, IconMail, IconSupport, IconMagic, IconTeam, IconRefresh,
IconWarning, IconServer, IconMonitor, IconVoice, IconZap, IconClock,
IconSend, IconTag, IconDatabase, IconPackage, IconLock, IconIdea,
} from './icons.jsx';
export const MODULE_ICONS = {
devlogs: IconDevlog, commit_feed: IconCommits, releases: IconChangelog,
weekly_recap: IconActivity, devlog_threads: IconMessage, social: IconPlay,
levels: IconLevel, starboard: IconStar, gallery: IconGallery,
voting: IconThumbsUp, giveaways: IconGiveaway, birthdays: IconBirthday,
events: IconEvents, playtester: IconGame, alpha_keys: IconKey,
role_menus: IconRoles, applications: IconApplications,
moderation: IconShield, modlog: IconArchive, modmail: IconMail,
tickets: IconSupport, welcome: IconMagic, autorole: IconTeam,
sticky_roles: IconRefresh, bug_reports: IconWarning,
server_monitor: IconServer, watchdog: IconMonitor, temp_voice: IconVoice,
triggers: IconZap, reminders: IconClock, scheduled_posts: IconSend,
tags: IconTag, backups: IconDatabase, repo_backups: IconPackage,
member_gate: IconLock,
};
/** Symbol einer Funktion — Glühbirne, falls für eine neue noch keins hinterlegt ist */
export const moduleIcon = (id) => MODULE_ICONS[id] ?? IconIdea;