@lilybird/jsx
Version:
JSX support & builders for lilybird
103 lines (102 loc) • 2.6 kB
JavaScript
export function ActionRow({ children }) {
if (!Array.isArray(children))
children = [children];
return {
type: 1,
components: children
};
}
export function Button(props) {
const base = {
type: 2,
style: props.style,
label: props.label,
emoji: props.emoji,
disabled: props.disabled
};
if ("url" in props) {
base.url = props.url;
return base;
}
base.custom_id = props.id;
return base;
}
export function TextInputModal({ id, style, label, min_length, max_length, required, value, placeholder }) {
return {
type: 4,
custom_id: id,
style,
label,
min_length,
max_length,
required,
value,
placeholder
};
}
export function StringSelectMenu({ id, placeholder, min_values, max_values, disabled, children }) {
if (!Array.isArray(children))
children = [children];
return {
type: 3,
custom_id: id,
placeholder,
min_values,
max_values,
disabled,
options: children
};
}
export function UserSelectMenu({ id, placeholder, min_values, max_values, disabled, children }) {
if (children != null && !Array.isArray(children))
children = [children];
return {
type: 5,
custom_id: id,
placeholder,
min_values,
max_values,
disabled,
default_values: children
};
}
export function RoleSelectMenu({ id, placeholder, min_values, max_values, disabled, children }) {
if (children != null && !Array.isArray(children))
children = [children];
return {
type: 6,
custom_id: id,
placeholder,
min_values,
max_values,
disabled,
default_values: children
};
}
export function MentionableSelectMenu({ id, placeholder, min_values, max_values, disabled, children }) {
if (children != null && !Array.isArray(children))
children = [children];
return {
type: 7,
custom_id: id,
placeholder,
min_values,
max_values,
disabled,
default_values: children
};
}
export function ChannelSelectMenu({ id, placeholder, min_values, max_values, channel_types, disabled, children }) {
if (children != null && !Array.isArray(children))
children = [children];
return {
type: 6,
custom_id: id,
placeholder,
min_values,
max_values,
disabled,
channel_types,
default_values: children
};
}