Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Review Reply Moderator CRUD Block for Solid

A seller's review desk where each review gets a public reply: publish or hide with a reason, write the reply in a counted composer, edit it in place and delete it with Undo.

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

Let a shop answer its reviews in public, with this review moderator for Solid with Ark UI. Six reviews of bakery orders fill a held frame, each with a drawn star row and its score in words ("Four out of five"), a status of Pending, Published or Hidden, and the order it came from. Publish and Hide change the status at once; Hide opens a Popover with a Native Select of reasons. The cycle is the reply: on a published review, Reply opens a composer under it with a Textarea that counts up to 300 characters and speaks only near the limit, and Post reply, the one Shine Button, adds "Reply from the shop". The reply is an Editable you edit in place, Delete removes it with an Undo line, and a replied review says Replied. A filter in the header shows one status. No status tabs, bulk actions or templates: those are other blocks.

FAQ

How do I fill it with my reviews?

Edit REVIEWS: each has an id, an order, a score from 1 to 5, the text, a status, a hiddenFor reason and an optional reply. Stars, the score in words, the Replied badge and the filter counts are derived from them.

Who can be replied to?

Only published reviews, because the reply is public. On a pending or hidden review the Reply button is aria-disabled and pressing it says "Publish a review before replying to it." Hide a review that has a reply and the reply stays attached, ready if you publish it again.

How is the character count announced?

The visible count (12 / 300) is hidden from screen readers so it is not read per key. A hint tied to the field with aria-describedby changes only in the last fifty characters ("20 characters remain.", "Limit reached."), and the field itself stops at 300.

How do I edit or delete a reply?

Press the pencil on the reply (or click it), edit the line, press Enter to save or Escape to cancel; an empty reply is refused with its reason. Delete removes it and the foot offers Undo. The in-place editor is one line; the composer is the multi-line field.

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

Reviews and replies live in state in this tab and a reload brings the six originals back; nothing is shown to shoppers. In your app call your API from publish, hide, post, editReply and deleteReply, and sanitise reply text on the server.

How does it look on a phone?

Rows are already a single column: stars and status on top, the text, then the buttons wrapping under it. The composer and reply block take the row's width, and the frame keeps its height with its own scroll.