diff --git a/packages/ui/src/lib/components/discord/DiscordMessages.stories.tsx b/packages/ui/src/lib/components/discord/DiscordMessages.stories.tsx index a4d3c9113..3b4741eb4 100644 --- a/packages/ui/src/lib/components/discord/DiscordMessages.stories.tsx +++ b/packages/ui/src/lib/components/discord/DiscordMessages.stories.tsx @@ -58,7 +58,11 @@ export const Default = { avatar: '/assets/discordjs.png', username: 'Guide Bot', }} - footer={{ content: 'Sometimes, titles just have to be.' }} + footer={{ + content: 'Sometimes, titles just have to be.', + icon: '/assets/discordjs.png', + timestamp: 'Today at 21:02', + }} title={{ title: 'An amazing title' }} > This is a description. You can put a description here. It must be descriptive! @@ -73,6 +77,35 @@ export const Default = { > Multiple embeds! + : authorNode ?? null} {title ? : titleNode ?? null} {children ?
{children}
: null} + {fields ? : null} {footer ? : footerNode ?? null} diff --git a/packages/ui/src/lib/components/discord/MessageEmbedField.tsx b/packages/ui/src/lib/components/discord/MessageEmbedField.tsx new file mode 100644 index 000000000..49fdf6a58 --- /dev/null +++ b/packages/ui/src/lib/components/discord/MessageEmbedField.tsx @@ -0,0 +1,14 @@ +export interface IDiscordMessageEmbedField { + inline?: boolean; + name: string; + value: string; +} + +export function DiscordMessageEmbedField({ name, value, inline }: IDiscordMessageEmbedField) { + return ( +
+ {name} + {value} +
+ ); +} diff --git a/packages/ui/src/lib/components/discord/MessageEmbedFields.tsx b/packages/ui/src/lib/components/discord/MessageEmbedFields.tsx new file mode 100644 index 000000000..2c99e0959 --- /dev/null +++ b/packages/ui/src/lib/components/discord/MessageEmbedFields.tsx @@ -0,0 +1,15 @@ +import { DiscordMessageEmbedField, type IDiscordMessageEmbedField } from './MessageEmbedField.js'; + +export interface IDiscordMessageEmbedFields { + fields: IDiscordMessageEmbedField[]; +} + +export function DiscordMessageEmbedFields({ fields }: IDiscordMessageEmbedFields) { + return ( +
+ {fields.map((field, idx) => ( + + ))} +
+ ); +} diff --git a/packages/ui/src/lib/components/discord/MessageEmbedFooter.tsx b/packages/ui/src/lib/components/discord/MessageEmbedFooter.tsx index c4a0687e3..9c571c8c4 100644 --- a/packages/ui/src/lib/components/discord/MessageEmbedFooter.tsx +++ b/packages/ui/src/lib/components/discord/MessageEmbedFooter.tsx @@ -1,7 +1,17 @@ export interface IDiscordMessageEmbedFooter { - content: string; + content?: string; + icon?: string; + timestamp?: string; } -export function DiscordMessageEmbedFooter({ content }: IDiscordMessageEmbedFooter) { - return
{content}
; +export function DiscordMessageEmbedFooter({ content, icon, timestamp }: IDiscordMessageEmbedFooter) { + return ( +
+ {icon ? : null} + + {content} + {content && timestamp ? : null} + {timestamp} +
+ ); }