refactor: centralize custom interaction IDs into constants
Replace all hardcoded custom ID strings with module-level constants. Each module now has *_CUSTOM_IDS in its types file, using functions for dynamic IDs and PREFIX for startsWith matching. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -22,6 +22,7 @@ import { ItemType } from "@shared/lib/constants";
|
||||
import type { ItemUsageData } from "@shared/lib/types";
|
||||
import { join } from "path";
|
||||
import { existsSync } from "fs";
|
||||
import { INVENTORY_CUSTOM_IDS } from "./inventory.types";
|
||||
|
||||
export const ITEMS_PER_PAGE = 5;
|
||||
|
||||
@@ -101,7 +102,7 @@ export function getInventoryListMessage(
|
||||
|
||||
// Select menu with current page items
|
||||
const selectMenu = new StringSelectMenuBuilder()
|
||||
.setCustomId(`inv_select_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.SELECT(viewerId))
|
||||
.setPlaceholder("Select an item for details");
|
||||
|
||||
for (const entry of pageItems) {
|
||||
@@ -121,17 +122,17 @@ export function getInventoryListMessage(
|
||||
// Pagination buttons
|
||||
const navRow = new ActionRowBuilder<ButtonBuilder>().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_prev_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.PREV(viewerId))
|
||||
.setLabel("◀ Previous")
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
.setDisabled(safePage <= 0),
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_page_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.PAGE(viewerId))
|
||||
.setLabel(`Page ${safePage + 1}/${totalPages}`)
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
.setDisabled(true),
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_next_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.NEXT(viewerId))
|
||||
.setLabel("Next ▶")
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
.setDisabled(safePage >= totalPages - 1),
|
||||
@@ -225,7 +226,7 @@ export function getItemDetailMessage(
|
||||
|
||||
const actionRow = new ActionRowBuilder<ButtonBuilder>().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_back_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.BACK(viewerId))
|
||||
.setLabel("◀ Back")
|
||||
.setStyle(ButtonStyle.Primary)
|
||||
);
|
||||
@@ -233,7 +234,7 @@ export function getItemDetailMessage(
|
||||
if (isUsable) {
|
||||
actionRow.addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_use_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.USE(viewerId))
|
||||
.setLabel("🧪 Use")
|
||||
.setStyle(ButtonStyle.Success)
|
||||
);
|
||||
@@ -242,7 +243,7 @@ export function getItemDetailMessage(
|
||||
if (isOwner) {
|
||||
actionRow.addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_discard_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.DISCARD(viewerId))
|
||||
.setLabel("🗑 Discard")
|
||||
.setStyle(ButtonStyle.Danger)
|
||||
);
|
||||
@@ -271,11 +272,11 @@ export function getDiscardConfirmMessage(entry: InventoryEntry, viewerId: string
|
||||
.addActionRowComponents(
|
||||
new ActionRowBuilder<ButtonBuilder>().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_discard_confirm_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.DISCARD_CONFIRM(viewerId))
|
||||
.setLabel("Confirm")
|
||||
.setStyle(ButtonStyle.Danger),
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_discard_cancel_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.DISCARD_CANCEL(viewerId))
|
||||
.setLabel("Cancel")
|
||||
.setStyle(ButtonStyle.Secondary)
|
||||
)
|
||||
@@ -296,7 +297,7 @@ export function getDiscardConfirmMessage(entry: InventoryEntry, viewerId: string
|
||||
export function appendUseBackButton(message: any, viewerId: string): any {
|
||||
const backRow = new ActionRowBuilder<ButtonBuilder>().addComponents(
|
||||
new ButtonBuilder()
|
||||
.setCustomId(`inv_use_back_${viewerId}`)
|
||||
.setCustomId(INVENTORY_CUSTOM_IDS.USE_BACK(viewerId))
|
||||
.setLabel("◀ Back to Inventory")
|
||||
.setStyle(ButtonStyle.Primary)
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user