# ButtonRoute

`function` in `seedcord` · v0.15.0

<https://docs.seedcord.org/packages/seedcord/0.15.0/functions/button-route>

Routes button interactions to handler classes.

Pass the [`CustomId`](/packages/kit/0.2.0/classes/custom-id) definition(s) this handler decodes and list the same ones in the handler's generic. Passing different definitions to the decorator and the generic is a compile error. Routing matches the stable prefix, so a wire minted from an older shape still reaches the handler, where reading this.params throws StaleCustomId and the controller boundary turns it into a reply.

```ts
ButtonRoute<Defs>(
    defs: Defs
): <
    TCtor extends new (
        ...args: any[]
    ) => InteractionHandler<Repliables> & HasComponentDefs<Defs>
>(
    constructor: AssertHandles<ButtonInteraction, TCtor>
) => void
```

Routes button interactions to handler classes.

Pass the [`CustomId`](/packages/kit/0.2.0/classes/custom-id) definition(s) this handler decodes and list the same ones in the handler's generic. Passing different definitions to the decorator and the generic is a compile error. Routing matches the stable prefix, so a wire minted from an older shape still reaches the handler, where reading this.params throws StaleCustomId and the controller boundary turns it into a reply.

Parameters.

- `defs` `Defs` — The customId definition(s) this handler decodes, one per route.

Returns `<TCtor extends new (...args: any[]) => InteractionHandler<Repliables> & HasComponentDefs<Defs>>(constructor: AssertHandles<ButtonInteraction, TCtor>) => void`.
