Review Prompt

Pro

Two-step review card that starts with a quick star or yes/no rating. Happy customers are invited to review you in the store, while lower scores open a short feedback form, then a calm thank-you.

Preview

Installation

npx @lumioui/cli add pro/review-prompt

Usage

import { ReviewPrompt } from "@/components/ui/review-prompt/review-prompt";
<ReviewPrompt />

Examples

After a moment

A meditation app asks after the tenth finished session, never mid-task.

API reference

Prop Type Default
visible boolean

Show/hide — hiding dims the card in place.

true
onDismiss () => void

Close button (and "Not now" when onLater is not set).

—
onLater () => void

"Not now" — snooze the prompt. Falls back to onDismiss.

—
sentiment "stars" | "binary"

Step 1 style: stars (default) or two answers.

"stars"
onRate (stars: number) => void

The sentiment once it is committed. Stars: 1–5. Binary: 5 for yes, 1 for no.

—
onStoreReview (stars: number) => void | Promise<unknown>

The store ask was accepted — open the platform's review sheet here.

—
onSubmit (stars: number) => void

The flow resolved: after the store hand-off, or once the thank-you has held.

—
onFeedback
(stars: number, text: string … (stars: number, text: string, topics: string[]) => void | Promise<unknown>

Private feedback for low scores. Return a promise to show the button busy.

—
onStepChange (step: ReviewPromptStep) => void

Fires on every step change.

—
title string "Enjoying it so far?"
message string "A quick rating tells us what …
storeTitle string

Step 2 copy for a happy score.

"That's great to hear"
storeMessage string "Would you leave a rating on t…
submitLabel string

Store action. Default "Rate on the store".

"Rate on the store"
feedbackTitle string

Step 2 copy for a low score.

"Sorry it's not there yet"
feedbackMessage string "What got in the way? Pick any…
topics readonly string[]

Topic chips in the feedback form.

DEFAULT_TOPICS
feedbackLabel string

Send action. Default "Send feedback".

"Send feedback"
feedbackPlaceholder string

Placeholder in the note field.

"Anything else? (optional)"
thanksTitle string

Thank-you copy after feedback is sent.

"Thanks for telling us"
thanksMessage string "Every note is read by the team
storeThreshold number

Lowest score routed to the store. Default 4.

4
dismissLabel string

"Not now" label. Default "Not now".

"Not now"
noLabel string

Binary answers. Default "Not really" / "Yes, love it".

"Not really"
yesLabel string "Yes
defaultRating number

Preselected rating. Default 0.

0
ratingLabels readonly string[] | null

One word per star under the row; null hides the word line.

DEFAULT_LABELS
className string —