Skip to content

PopiiComponentDefinition

Popii


Popii / PopiiComponentDefinition

Interface: PopiiComponentDefinition<TState, TInput, TLocals>

Section titled “Interface: PopiiComponentDefinition<TState, TInput, TLocals>”

Defined in: types.ts:318

The full definition of a Popii persistent component handler (Snap).

You don’t usually interact with this interface directly — use the snap builder function, which infers all types for you.

TState = any

TInput = any

TLocals = PopiiLocals & Record<string, any>

do(pop): void | Promise<void>

Defined in: types.ts:336

ComponentPop<TState, TInput, TLocals>

void | Promise<void>

customId: string | RegExp

Defined in: types.ts:319


optional prefix?: string

Defined in: types.ts:320


optional guildOnly?: boolean

Defined in: types.ts:321


optional ownerOnly?: boolean

Defined in: types.ts:322


optional premium?: boolean

Defined in: types.ts:323


optional ephemeral?: boolean

Defined in: types.ts:324


optional permissions?: (bigint | "CreateInstantInvite" | "KickMembers" | "BanMembers" | "Administrator" | "ManageChannels" | "ManageGuild" | "AddReactions" | "ViewAuditLog" | "PrioritySpeaker" | "Stream" | "ViewChannel" | "SendMessages" | "SendTTSMessages" | "ManageMessages" | "EmbedLinks" | "AttachFiles" | "ReadMessageHistory" | "MentionEveryone" | "UseExternalEmojis" | "ViewGuildInsights" | "Connect" | "Speak" | "MuteMembers" | "DeafenMembers" | "MoveMembers" | "UseVAD" | "ChangeNickname" | "ManageNicknames" | "ManageRoles" | "ManageWebhooks" | "ManageEmojisAndStickers" | "ManageGuildExpressions" | "UseApplicationCommands" | "RequestToSpeak" | "ManageEvents" | "ManageThreads" | "CreatePublicThreads" | "CreatePrivateThreads" | "UseExternalStickers" | "SendMessagesInThreads" | "UseEmbeddedActivities" | "ModerateMembers" | "ViewCreatorMonetizationAnalytics" | "UseSoundboard" | "CreateGuildExpressions" | "CreateEvents" | "UseExternalSounds" | "SendVoiceMessages" | "SetVoiceChannelStatus" | "SendPolls" | "UseExternalApps" | "PinMessages" | "BypassSlowmode")[]

Defined in: types.ts:325


optional allowedRoles?: string[]

Defined in: types.ts:326


optional deniedRoles?: string[]

Defined in: types.ts:327


optional allowedChannels?: string[]

Defined in: types.ts:328


optional mutex?: boolean

Defined in: types.ts:329


optional cooldown?: number | { ms: number; uses?: number; scope?: "user" | "guild" | "global"; }

Defined in: types.ts:330


optional quota?: object

Defined in: types.ts:331

limit: number

timeframe: number

optional scope?: "user" | "guild" | "global"


optional expiresIn?: number

Defined in: types.ts:332


optional timeoutMs?: number

Defined in: types.ts:333


optional middlewares?: ComponentMiddleware<TState, TInput, TLocals>[]

Defined in: types.ts:334


optional schema?: PopiiSchema<TInput>

Defined in: types.ts:335