Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Data Import Success Block for React

A confirmation panel for a finished CSV import: one bar split into imported, duplicate and failed rows by their counts, a scrolling ledger of the failed rows with the problem and what the file had, and a real CSV error report built from the typed rows.

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

Show what an import did, and exactly which rows need a person, with this confirmation panel for React with Base UI. It is the panel Rowloft, a customer-data tool, shows once a CSV has been read: a header with one action, the Shine Button that opens all records, over one framed card in three bands. The first is the outcome, one bar split into the rows imported, the rows skipped as duplicates and the rows that failed, each part as long as its count, with a number, a word and a share under each. The second is the error ledger, a native Table of the failed rows with the column, the problem and what the file had, inside one scroll box of a fixed height. The third is the live line and a Download Trigger that saves the error report as a real CSV. For imports of customers, products, contacts and any file that is read row by row.

FAQ

What stays in the page, and how do I wire it for real?

Nothing was imported and the file never left the device: the 1,248 rows, the 47 duplicates and the 17 failed rows are typed sample data. What the browser really does is the download, a CSV built in the tab. To wire it, fill TOTAL and DUPLICATES from your import job and FAILURES with the rows it refused; the imported count, the shares, the bar and the report are all worked out from them.

How do I read the outcome bar?

Each part is as long as its count: solid for the rows imported (1,184), hatched for the rows skipped as duplicates (47) and hollow for the rows that failed (17). The imported number is what remains of the file's rows after the other two, so the three always add up. The shares under the bar (95, 4 and 1 percent) are worked out by the largest remainder, so they add to exactly 100, and the bar carries one sentence with the three counts for a screen reader.

What is in the error report?

One line per failed row, 17 of them, under a header line: the row, the column, the problem and the value the file had. Any field with a comma, a quote or a line break is quoted, and a value that starts with an equals sign, a plus, a minus, an at sign, a tab or a return gets a leading apostrophe, so a spreadsheet keeps it as text instead of running it as a formula. It is saved as customers-2026-09-import-errors.csv, and the live line says so.

How does the ledger scroll?

It is a focusable region with a name, so the arrow keys and Page Down scroll it from the keyboard, and its header row stays at the top. Its height is fixed, so the panel never moves however many rows fail. All 17 rows are in it; the box shows about six and a half at a time, so the next row is always peeking out.

How does it look on a phone?

The ledger keeps two columns: the row, with its column name under it, and the problem. The value the file had is in the report. The three counts stay in one row and the download button is full width under the live line.

  • Pro

    Import Failed Error

    Files and data

    A panel for a CSV import that skipped rows: a strip of counts that follow the page, a table of the first five errors each with a suggested fix and an Apply fix button, a Shine Button that follows the count, and a real CSV error report.

  • Pro

    Sync Completed Success

    Integrations and syncs

    A confirmation panel for a finished data sync: a table of records created, updated and skipped for four objects with a segmented bar under each name, a switch for a 15-minute schedule with the next run time, and a Sync now button that adds a second run.

  • Pro

    Export Ready Success

    Backups and exports

    A full-height confirmation page for a finished export: a ring with the hours that remain of the link's 48, the file card, notebook, note and word counts, a real zip built in the browser to download and a link that really copies.

  • Pro

    Export Table

    Select and act

    A sales table with a search and row checkboxes and an Export dialog that asks which rows (visible, selected or all, with counts), whether to include hidden columns and a file name, then downloads a real CSV, shown open in place.

  • Pro

    Bulk Update Success

    Saves and updates

    A confirmation panel for a bulk edit: a drawn contacts list whose twelve owner cells were just reassigned, with an undo bar docked at the foot of the stage whose Undo restores every cell, then offers Redo, and a button that applies the edit again.

  • Pro

    Backup Created Success

    Backups and exports

    A full-height confirmation page for a database backup: fourteen day cells as a retention rack where each pick shows when its snapshot is deleted, a snapshot id and a restore command with copy buttons, a local Test a restore, and a real download of a small JSON manifest.