X Enterprises
Note

NoteFeed

Animated list of notes with search/filter toolbar, load-more pagination, and empty states.

Note

The Note category provides a complete activity/comment feed system. XANote is the individual card, XANoteFeed composes multiple notes with search and pagination, XANoteInput is the composition form, and XANoteToolbar handles search and filtering independently.

Components

<XANoteFeed />

Wraps a collection of XANote cards in an animated TransitionGroup. Includes optional search/filter toolbar, a load-more button, search empty state, and a general empty state from XAStateEmpty.

<XANoteFeed
  :notes="notes"
  :has-more="hasMore"
  :loading-more="loadingMore"
  searchable
  filterable
  :filter-options="[
    { key: 'author', label: 'Author', type: 'select', options: authorOptions }
  ]"
  @load-more="loadMore"
  @note-click="openNote"
>
  <template #input>
    <XANoteInput v-model="draft" @submit="addNote" />
  </template>
  <template #note-actions="{ note }">
    <UButton icon="i-lucide-trash" size="xs" variant="ghost" color="error" @click="deleteNote(note)" />
  </template>
</XANoteFeed>

Props

PropTypeDefaultDescription
notesArrayrequiredArray of note objects
hasMoreBooleanfalseShow the load-more button
loadingMoreBooleanfalseLoading state for load-more button
loadMoreTextString'Load more notes'Load-more button label
emptyTitleString'No notes yet'Empty state title
emptyDescriptionString'Notes will appear here once added.'Empty state description
emptyIconString'i-lucide-sticky-note'Empty state icon
noteSizeString'md'Size variant passed to each XANote
showNoteActionsBooleantrueShow note action slots
searchableBooleanfalseEnable search toolbar
filterableBooleanfalseEnable filter toolbar
searchString''Current search query (v-model:search)
filtersObject{}Active filters object (v-model:filters)
filterOptionsArray[]Filter definitions: [{ key, label, type, options? }]
debounceNumber300Search debounce in ms
searchPlaceholderString'Search notes...'Search input placeholder
searchEmptyTitleString'No notes found'Search empty state title
searchEmptyDescriptionString'Try adjusting your search or filters.'Search empty state description

Events

EventPayloadDescription
load-moreUser clicked load-more
note-clicknoteUser clicked a note
attachment-click{ note, file }User clicked a note attachment
update:searchstringSearch query changed
update:filtersobjectFilters changed
clear-filtersUser cleared all filters

AI Context

component: XANoteFeed
package: "@xenterprises/nuxt-x-app"
category: Note
use-when: >
  Compose XANoteInput + XANoteFeed together for a full create-and-read note
  experience on entity detail pages. XANoteFeed handles display, search,
  filtering, and pagination. Use the #input slot to embed XANoteInput at
  the top of the feed.
Copyright © 2026