Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Approval Screen Setup Integration Block for React

An integration setup section for a stock sync tool installing on Shopify: a narrow framed panel that sketches the approval step, with a store-handle field and fixed .myshopify.com suffix, four locked access scopes, a reserve location and an Install button.

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

An integration setup section for React with Base UI, written for Tallybin, a fictional stock sync tool for small merchants, and its Shopify install. A centred header introduces one narrow framed panel that sketches the approval step a merchant sees, opening on the mark pair. A store-handle field carries the fixed .myshopify.com suffix and is checked as you type: pasting a whole address trims the suffix, capitals and stray characters drop out, and a handle that starts or ends with a hyphen is called out. Under it, the four access scopes Tallybin asks for are a locked list (a lock marks the read-only ones, an open lock the one that writes, and none is about customers or orders). Two choices belong to Tallybin itself: which location holds the reserve (a Select) and an optional weekly email (a Checkbox). Cancel clears the form; the Install Tallybin Shine Button unlocks with a valid handle and says what it waits for. Installing ends on "Installed in this demo" with a ghost Disconnect. The form and the result share one cell, so the panel never changes height. The page's rails and top rule come from the Guides spine. It's built from Guides, Frame, InputGroup, Select, Checkbox, Button and Shine Button, with your theme's tokens for every colour. Shopify is named in text only: no Shopify logo, colour or wordmark ships with the block. Nothing is sent to Shopify.

FAQ

What stays on the page, and what would a real install do?

Everything. Typing a handle, choosing a location, ticking the email box and pressing Install change state in this block only, and a polite status line below the panel says so from the start and after every action. A real install sends the merchant to Shopify, which shows its own approval screen listing the scopes; this panel is only a sketch of that step. Wire Install to your own app's install URL for the handle that was typed.

Are the scopes real, and why can't I untick them?

read_products, read_locations, read_inventory and write_inventory are Shopify Admin API access scopes. They are locked because the sync cannot work without any of them: it matches variants, finds locations, reads stock and writes the available count. The only optional choice on the panel, the weekly email, is Tallybin's own setting, not a Shopify scope. To change the list, edit SCOPES.

How is the store handle validated?

A handle is lowercase letters, numbers and hyphens, and cannot start or end with a hyphen (HANDLE_OK). The input accepts a pasted address such as Pinewick.myshopify.com/admin and keeps only the handle. The note under the field says what is wrong or what would happen next, and its space is reserved so the panel does not move while you type.

How does it work with a keyboard and a screen reader?

Every control has a name: the handle field is "Store handle", the select is "Location that holds the reserve", and the checkbox is named by its title. The scope list reads each scope with its access word. Installing moves focus to the result's heading, and Disconnect moves it back to the handle field. The status line is a polite live region present from load. Install is genuinely disabled until the handle is valid, with the reason beside it.

How does it behave on a phone and in right-to-left layouts?

The panel is a single column at every width, with the buttons full width on a phone. The handle and the suffix always read in the same direction, because an address is not mirrored; the labels, notes and buttons follow the page direction. The only motion is the entrance fade-up, and reduced motion turns it off.

  • Pro

    Stock Table Detail Integration

    With a product drawing

    An integration detail section for a stock sync tool connecting to Shopify: a framed before-and-after table of three variants with a hatched reserve, beside the four access scopes, three steps and a Connect Shopify button.

  • Pro

    Location Cards Grid Integration

    Switch and tick grids

    An integration grid section for a stock sync tool connected to Shopify: four locations as a 2 by 2 of hairline cells, each with units on hand, a bar of stock held back, a sync switch and a slider for the reserve per variant, and a tally worked out from them.

  • Pro

    An integration list section for a stock sync tool connected to Shopify: seven variants waiting for a match as rail-to-rail rows, each with a Select to pick one of your items, a Skip button and a state, under a progress bar and a count worked out from the rows.

  • Pro

    An integration setup flow for a cloud cost tool connecting to AWS: a scope and 12-digit account ID, two aws iam commands built from that ID with a derived External ID, and a pasted role ARN that is parsed and checked against the account.

  • Pro

    An integration setup section for a design-docs tool connecting to Figma, in one framed window: paste a personal access token, tick greyscale wireframe thumbnails of the frames to link, name the link and watch its address follow, then finish with an honest result.

  • Pro

    A consultation request for an advisory firm, with a 15, 30 or 60 minute choice that sets the price and the questions the call will cover.