X Enterprises
Wall

WallPost

Individual post card with author, timestamp, body, attachments, tags, reactions, and expandable replies.

Wall

The Wall category provides a complete social feed system. XAWallFeed is the top-level orchestrator; it renders pinned and regular post lists, delegates search/filter to a toolbar, and shows appropriate empty or loading states. Individual posts are rendered by XAWallPost. The remaining components — XAWallInput, XAWallReplies, XAWallReactions, and XAWallTags — can be composed independently or are automatically used inside XAWallFeed and XAWallPost.

Components

<XAWallPost />

The individual post card. Renders the author avatar with initials fallback, relative and absolute timestamps, tags, body text, file attachments, emoji reactions via XAWallReactions, and a reply toggle. An optional #actions slot renders a dropdown for post-level controls. A #replies slot receives the expandable reply section (typically XAWallReplies).

<XAWallPost
  body="Hello team! Check out this update."
  :timestamp="post.createdAt"
  :user="{ name: 'Jane Smith', avatar: '/avatars/jane.jpg' }"
  :reactions="post.reactions"
  :tags="post.tags"
  :reply-count="post.replyCount"
  size="md"
  @react="handleReact"
  @reply="toggleReplies"
>
  <template #replies>
    <XAWallReplies :replies="post.replies" :expanded="repliesOpen" />
  </template>
</XAWallPost>

Props

PropTypeDefaultDescription
bodyStringrequiredPost body text.
timestampString | Date | NumberrequiredPost creation time.
userObjectrequiredAuthor object with name (required) and optional avatar.
attachmentsArray[]File attachment objects: { name, size, type?, url? }.
tagsArray[]Tag objects: { label, color? }.
reactionsArray[]Reaction objects: { emoji, count, reacted }.
replyCountNumber0Number of replies (controls reply toggle visibility).
pinnedBooleanfalseRenders a pinned indicator banner at the top.
sizeString'md'Post size variant — 'sm', 'md', or 'lg'.
showActionsBooleantrueEnable the #actions slot area.
showReplyButtonBooleantrueShow reply button even when replyCount is 0.

Events

EventDescription
reactReaction toggled. Payload: { emoji, ... }.
replyReply toggle button clicked.
tag-clickA tag was clicked. Payload: tag object.
attachment-clickAn attachment row was clicked. Payload: file object.

AI Context

component: XAWallPost
package: "@xenterprises/nuxt-x-app"
auto-import: true
prefix: XA
category: Wall
use-when: Rendering a single post card with author, timestamp, body, attachments, tags, reactions, and a reply toggle. Use standalone when you need a single post card outside a feed context. Use #replies slot for XAWallReplies and #actions slot for post-level controls.
Copyright © 2026