Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Feedback Duplicate Manager CRUD Block for Vue

A product team's feedback inbox where repeats fold into the original: log a message with its source, sort and note it, mark duplicates from a popover, unfold them and close or delete items.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Sort the feedback that keeps arriving twice, with this feedback manager for Vue with Ark UI. The quick line logs a message with a source chosen in a Segment Group, Email, Chat or Survey, and the one Shine Button. A list at the start shows the open messages, each with its source, category and status, and the item at the end edits the category in a Native Select, the status in a segment group and a note in a Textarea. "Mark as duplicate of…" opens a Popover listing the other open items and folds the message under the one you pick, which then reads "+2 duplicates" with a Collapsible listing them, each with Unfold. Close (Done) moves an item to the Done view; Delete exists only there, and only without folded duplicates; the others say "Close it first". Every change leaves an Undo line. Not a mail client: that is the tables email inbox.

FAQ

How do I fill it with my feedback?

Edit ITEMS: each has an id, a message, a source, a category, a status (New, Triaged or Done), a note, an ISO date and dupOf, the id of the original it is folded under or an empty string. The open and done counts and the "+2 duplicates" lines are derived from them.

What can be folded under what?

An open message with no duplicates of its own can be folded under another open message. A message that already holds duplicates shows its button aria-disabled with "Unfold its 2 duplicates first", so a pile never nests. Folding selects the original and focuses its row; Undo puts the message back.

Why does Delete say Close it first?

Deleting is for finished items, so only a Done message with no folded duplicates can go. The button stays aria-disabled with its reason in a reserved line, and a Done item can be reopened from the status control, which moves it back to the Open view.

How do the Open and Done views work?

A segment group above the list switches between them and shows both counts. Folded messages never appear on their own: they are inside their original's disclosure, in whichever view the original is in. Closing an item moves selection to its neighbour and focuses that row.

What stays local, and how do I wire a real inbox?

Messages live in state in this tab and a reload brings the eight originals back; no email or chat is read. In your app call your API from log, fold, unfold, leave and remove, keep the duplicate link as a duplicate_of column, and make Undo a compensating update.

How does it look on a phone?

The list and the item share one pane: choosing a message shows the item with a Back to messages button and moves focus to its heading, and Back returns to the same row. The panes keep a fixed height and scroll inside it.