func (m *Message) SelectMenus() []discord.SelectMenu {
	var selectMenus []discord.SelectMenu
	for _, actionRow := range m.ActionRows() {
		for _, component := range actionRow {
			if selectMenu, ok := component.(discord.SelectMenu); ok {
				selectMenus = append(selectMenus, selectMenu)
			}
		}
	}
	return selectMenus
}
SelectMenus returns all SelectMenu(s) from this Message
package webhook
import (
	"github.com/DisgoOrg/disgo/discord"
	"github.com/DisgoOrg/disgo/rest"
)
type Message struct {
	discord.Message
	WebhookClient *Client
}
func (m *Message) Update(messageUpdate discord.WebhookMessageUpdate, opts ...rest.RequestOpt) (*Message, error) {
	return m.WebhookClient.UpdateMessage(m.ID, messageUpdate, opts...)
}
func (m *Message) Delete(opts ...rest.RequestOpt) error {
	return m.WebhookClient.DeleteMessage(m.ID, opts...)
}
func (m *Message) ActionRows() []discord.ActionRow {
	var actionRows []discord.ActionRow
	for _, component := range m.Components {
		if actionRow, ok := component.(discord.ActionRow); ok {
			actionRows = append(actionRows, actionRow)
		}
	}
	return actionRows
}
func (m *Message) ComponentByID(customID string) discord.Component {
	for _, actionRow := range m.ActionRows() {
		for _, component := range actionRow {
			switch c := component.(type) {
			case discord.Button:
				if c.CustomID == customID {
					return c
				}
			case discord.SelectMenu:
				if c.CustomID == customID {
					return c
				}
			default:
				continue
			}
		}
	}
	return nil
}
func (m *Message) Buttons() []discord.Button {
	var buttons []discord.Button
	for _, actionRow := range m.ActionRows() {
		for _, component := range actionRow {
			if button, ok := component.(discord.Button); ok {
				buttons = append(buttons, button)
			}
		}
	}
	return buttons
}
func (m *Message) ButtonByID(customID string) *discord.Button {
	for _, button := range m.Buttons() {
		if button.CustomID == customID {
			return &button
		}
	}
	return nil
}