Action Row
The ActionRow component is a container that groups interactive
components like buttons and select menus together in a single row.
Basic usage
src/app/commands/example.tsx
import { type ChatInputCommand, ActionRow, Button } from 'commandkit';
export const chatInput: ChatInputCommand = async ({ interaction }) => {
  const row = (
    <ActionRow>
      <Button customId="button-1">Click me!</Button>
      <Button customId="button-2">Another button</Button>
    </ActionRow>
  );
  await interaction.reply({
    content: 'Choose an option:',
    components: [row],
  });
};
With select menus
src/app/commands/select-example.tsx
import {
  type ChatInputCommand,
  ActionRow,
  StringSelectMenu,
  StringSelectMenuOption,
} from 'commandkit';
export const chatInput: ChatInputCommand = async ({ interaction }) => {
  const row = (
    <ActionRow>
      <StringSelectMenu placeholder="Choose an option">
        <StringSelectMenuOption label="Option 1" value="1" />
        <StringSelectMenuOption label="Option 2" value="2" />
      </StringSelectMenu>
    </ActionRow>
  );
  await interaction.reply({
    content: 'Select from the dropdown:',
    components: [row],
  });
};
Multiple action rows
You can use multiple ActionRows in a single message to organize your components:
src/app/commands/multiple-rows.tsx
import { type ChatInputCommand, ActionRow, Button } from 'commandkit';
import { ButtonStyle } from 'discord.js';
export const chatInput: ChatInputCommand = async ({ interaction }) => {
  const firstRow = (
    <ActionRow>
      <Button style={ButtonStyle.Primary} customId="button-1">
        Primary Action
      </Button>
      <Button style={ButtonStyle.Secondary} customId="button-2">
        Secondary Action
      </Button>
    </ActionRow>
  );
  const secondRow = (
    <ActionRow>
      <Button style={ButtonStyle.Success} customId="button-3">
        Confirm
      </Button>
      <Button style={ButtonStyle.Danger} customId="button-4">
        Cancel
      </Button>
    </ActionRow>
  );
  await interaction.reply({
    content: 'Multiple action rows:',
    components: [firstRow, secondRow],
  });
};