# FeedbackList

**Slug:** `feedback-list`  
**Import:** `import { FeedbackList } from "@p4n/erc8004-ui"`

> **NOTE — unofficial library.** `@p4n/erc8004-ui` is an independent, community-built project. It is not affiliated with, maintained by, or endorsed by the authors of ERC-8004. It reads the standard's on-chain data through public subgraphs; it does not speak for the standard.

## Description

Paginated list of individual feedback entries with score, tag pills, reviewer address, timestamp, and optional written review text.

## Usage

```tsx
import { FeedbackList } from "@p4n/erc8004-ui"
<FeedbackList agentRegistry="eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432" agentId={888} />
```

## Examples

### Smaller Page Size

Show 5 items per page instead of the default 10.

```tsx
<FeedbackList agentRegistry="eip155:8453:0x8004...a432" agentId={888} pageSize={5} />
```

### Minimal (Scores Only)

Hide tags, timestamps, and reviewer addresses for a compact score-only list.

```tsx
<FeedbackList
  agentRegistry="eip155:8453:0x8004...a432"
  agentId={888}
  showTags={false}
  showTimestamp={false}
  showReviewerAddress={false}
  pageSize={5}
/>
```

### Without Responses

Hide agent responses under each feedback entry.

```tsx
<FeedbackList agentRegistry="eip155:8453:0x8004...a432" agentId={888} showResponses={false} />
```

## In Context

FeedbackList in a reputation panel alongside the score and tag cloud.

```tsx
<AgentProvider agentRegistry="eip155:8453:0x8004...a432" agentId={888}>
  <div className="flex flex-col gap-4 sm:flex-row sm:items-center">
    <ReputationScore />
    <TagCloud />
  </div>
  <FeedbackList pageSize={3} />
</AgentProvider>
```

## API Reference

| Prop | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `agentRegistry` | `string` | no | — | Agent registry in the format "eip155:{chainId}:{contractAddress}". Required unless inside an <AgentProvider>. |
| `agentId` | `number` | no | — | ERC-721 token ID of the agent. Required unless inside an <AgentProvider>. |
| `className` | `string` | no | — | Optional CSS classes merged onto the component root for layout, spacing, or custom styling (e.g. Tailwind). |
| `pageSize` | `number` | no | `10` | Items per page. |
| `showReviewerAddress` | `boolean` | no | `true` | Show the reviewer's wallet address. |
| `showTimestamp` | `boolean` | no | `true` | Show the feedback timestamp. |
| `showTags` | `boolean` | no | `true` | Show tag pills. |
| `showResponses` | `boolean` | no | `true` | Show agent responses under each feedback entry. |
| `coloredScores` | `boolean` | no | `true` | Colour the numeric score by score band (green → gold → red). |
| `emptyMessage` | `string` | no | `"No feedback yet."` | Custom message when there is no feedback. |
| `headingLevel` | `1 \| 2 \| 3 \| 4 \| 5 \| 6` | no | `3` | Heading level for this component's title. The default is the level it was previously hardcoded to, so leaving it alone renders exactly as before. Set it to keep the component from breaking the surrounding page's heading order. |

## States

This component handles loading, error, empty, and not-found states internally. A skeleton placeholder is shown while fetching, an error message with details appears if the Subgraph is unreachable, and a short message is displayed when no data exists for this agent.

## Reference

- Live preview & full docs: https://erc8004-ui.vercel.app/docs/components/feedback-list
- Markdown source: https://erc8004-ui.vercel.app/docs/components/feedback-list.md
