Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Import Progress Account Block for React

An import in progress into a new account: an overall count, a row for each resource with its state, a log in the theme's colours, Run next one resource per press and Retry for a failure.

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 an import while it runs, without a spinner and without a promise it cannot keep, with this migration panel for React with Base UI. The top band adds up the five resources into one count and bar: how many records are written of how many. A row for each resource, Contacts, Projects, Files, Comments and Settings, gives its state as a word with an icon in an outline Badge, its own count and thin bar and one line on what it holds or why it stopped. A fixed-height log under them, in the theme's own colours, gains the lines of whatever just ran. Nothing runs by itself: the header's Shine Button, Run next, imports the first waiting resource for each press, and Files has failed part-way and offers Retry. Start over puts the demo back. It's built from Badge, Button, Shine Button and Guides, with a CSS entrance only. For onboarding, account settings and any app that moves data in from another service.

FAQ

How do I fill it with my resources?

Edit FIRST: each resource has an id, a name, a short hint, its total, how many are done and, when it stopped, the reason in failed. State is worked out, not typed: all written is Done, a reason with records still to write is Failed, anything else is Waiting. The overall count and every percentage come from the same list. The log's lines are typed in LINES and the order they appear in is kept in state, with their times counted from a start time.

What stays local, and how do I make it real?

All of it. Run next marks a resource written in this page and adds its lines to the log; no record is read from the old account or written to the new one, and the status line says so each time. To make it real, run the import as a job on your server, send the counts and the log lines to the page as they happen, and let Retry ask the server to resume. Keep the rule that the page shows what the server reports, never an estimate.

Why does Files fail, and what does Retry do?

It fails by design, so the failed state is reachable: it stopped at 5,800 of 9,400 because the old account closed the connection. Its row says where and why, and Retry writes the rest and adds two lines to the log. Run next skips a failed resource, and when only the failed one is left it says to retry it first.

How does the log behave?

It is a scrolling region with a name that keyboard users can focus and scroll, held at one height whatever it holds, and it shows the newest line when one is added. It is not a live region: the single status line is the one that speaks, so a screen reader hears what changed once. The text is plain monospace in the theme's colours, so it follows light and dark.

How does it look on a phone?

Each resource becomes a short stack: the name with its state at the end, the bar, the count and the line under them. Every row keeps one height whatever its state, so Retry appearing or going never moves the others. The log keeps its height, and the status line sits over Start over in the foot.

Is it accessible?

State is a word with an icon, never a colour, the bars are decorative because every count is in the text beside them, and the buttons say which resource they act on. Run next waits quietly with the same label when nothing is waiting and explains itself if pressed. The status line is polite and present from the start.

  • Pro

    A transfer to another app in five steps: choose where, tick what moves, map each field, review what stays behind and start, with a real download of the sample records.

  • Pro

    Export requests as a lifecycle: a request checked with the password, a four-stage track that moves one stage per press, and a real sample file to download once it is ready.

  • Pro

    Import and Export Settings

    Backups and exports

    An import rules panel with a dry run: three rules decide how rows match items on file, and a sample file of eight rows shows each row's verdict and four totals that change as the rules do, plus a real header-row CSV template to download.

  • Pro

    A merge in three steps: the other account's email and code, the two accounts side by side with what moves, what is lost and three choices, and a confirm that closes the other account behind an alert dialog.

  • Pro

    The archives an account has asked for and not yet taken: a type filter, a table with size, request day and time to expiry, real sample downloads, Request again for an expired one and Undo.

  • Pro

    An account's two-factor methods as rows with their role, history and a Test that opens a code field in place, Make primary, a guarded Remove, and a Set up that opens a QR code, a key name or a number.