Bis fuenf Eintraege Knoepfe statt Auswahlmenue
Du hattest recht. Bei vier Anliegen ist ein Auswahlmenue der schlechtere Weg: zwei Klicks statt einem, und die Moeglichkeiten sieht man erst nach dem Aufklappen. Ein Knopf ist beides — sichtbar und sofort. Umgekehrt gilt es nicht immer. Ab sechs wird die Knopfreihe zur Wand und Discord bricht sie um; dann ist das Menue das ruhigere Bild. Also nicht "Knoepfe statt Menue", sondern der Uebergang: bis fuenf Knoepfe, darueber Menue. Fuenf, weil genau so viele in eine Reihe passen. Betroffen waren nur zwei Stellen — Ticket-Anliegen und Wunsch-Bereiche. Alles andere im Bot waren ohnehin schon Knoepfe. Eine Sache verliert man dabei: die graue Beschreibungszeile, die ein Menue unter jedem Eintrag anzeigt. Die steht jetzt im Text des Aufruf-Posts, und da ist sie ehrlich gesagt besser aufgehoben — man liest sie, bevor man klickt, statt danach. Geprueft gegen discord.js selbst, weil Ueberlaengen und ungueltige Emojis sonst erst beim Posten auffallen: null Eintraege (der eine alte Knopf), eins bis fuenf (Knoepfe mit Emoji und der ID in der Kennung), sechs (zurueck zum Menue), Murks-Emoji (faellt weg, Knopf bleibt), 200 Zeichen langer Name (auf 80 gekuerzt), und die Beschreibungszeile in allen drei Faellen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
import { SlashCommandBuilder, PermissionFlagsBits, MessageFlags, EmbedBuilder } from 'discord.js';
|
||||
import { ticketChannelId, brandColor, brandFooter } from '../../runtime-settings.js';
|
||||
import { renderTemplate } from '../../templates.js';
|
||||
import { ticketPanelComponents } from '../tickets.js';
|
||||
import { ticketPanelComponents, anliegenListe } from '../tickets.js';
|
||||
import { listTicketCategories } from '../../db.js';
|
||||
|
||||
export const data = new SlashCommandBuilder()
|
||||
@@ -22,7 +22,9 @@ export async function execute(interaction) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor(brandColor())
|
||||
.setTitle(renderTemplate('ticket.panel_title'))
|
||||
.setDescription(renderTemplate('ticket.panel_text'))
|
||||
// Bei Knoepfen ist fuer die Kurzbeschreibungen kein Platz — dann
|
||||
// stehen sie hier im Text, wo man sie ohnehin vorher liest
|
||||
.setDescription(renderTemplate('ticket.panel_text') + anliegenListe())
|
||||
.setFooter({ text: brandFooter('SUPPORT') });
|
||||
|
||||
// Ohne Anliegen ein Knopf, mit Anliegen ein Auswahlmenue
|
||||
|
||||
Reference in New Issue
Block a user