Wall
WallInput
Post composer with v-model textarea, file attachments, tag selector, and submit button.
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
<XAWallInput />
A post composer component. Provides an auto-resizing textarea (with Cmd/Ctrl+Enter submit), optional file attachment upload, optional tag selection via XAWallTags, and a footer with a submit button. Displays the current user's avatar when user is provided.
<XAWallInput
v-model="postBody"
placeholder="What's on your mind?"
:user="currentUser"
:allow-attachments="true"
:allow-tags="true"
:available-tags="availableTags"
:loading="submitting"
submit-text="Post"
@submit="({ body, files, tags }) => createPost(body, files, tags)"
/>
Props
| Prop | Type | Default | Description |
|---|---|---|---|
modelValue | String | '' | v-model for the textarea content. |
placeholder | String | 'Write a post...' | Textarea placeholder. |
allowAttachments | Boolean | true | Show file upload button. |
allowTags | Boolean | true | Show the tag selector. |
availableTags | Array | [] | Tag suggestions for the picker. |
maxTags | Number | 5 | Maximum tags allowed on a post. |
accept | String | '*' | Accepted file MIME types for the file picker. |
maxFileSize | Number | 262144000 | Maximum file size in bytes (default 250 MB). |
maxFiles | Number | 5 | Maximum number of file attachments. |
loading | Boolean | false | Puts the submit button in loading state. |
disabled | Boolean | false | Disables the entire input. |
submitText | String | 'Post' | Submit button label. |
user | Object | null | Current user { name, avatar? } for avatar display in header. |
minRows | Number | 2 | Minimum textarea rows. |
maxRows | Number | 6 | Maximum auto-grow rows. |
Events
| Event | Payload | Description |
|---|---|---|
update:modelValue | String | Textarea content changed. |
submit | { body, files, tags } | User submitted the post. |
file-error | error object | File validation failed (size/type). |
AI Context
component: XAWallInput
package: "@xenterprises/nuxt-x-app"
auto-import: true
prefix: XA
category: Wall
use-when: Composing new posts or replies in a wall/feed context. Manages file attachments and tag selection internally. Supports Cmd/Ctrl+Enter keyboard submit. Use in the XAWallFeed #input slot or standalone for reply composers.
