suiss/ui · Block
Verify Email
A check-your-inbox screen after signup, with open mail and resend actions and a cooldown timer.
Verify Email is an open-source block from suiss/ui for React, React Native, SwiftUI and Jetpack Compose. The @esuiss/ui CLI copies its source into your project, so you own the code.
A check-your-inbox screen shown after signup that names the address the link went to, with an Open Mail button, a Resend button with a 45-second cooldown and a link to change the address. Use it for email verification, magic links or password reset confirmations.
Installation
CLI
Works in any project with a components.json. See Installation for the one-line registry setup. Or use the suiss/ui CLI:
Manual
- Install the dependencies:
-
Add the pieces it builds on: Button.
-
Copy the source into
components/blocks/verify-email.tsx:
- Update the import paths to match your project.
Usage
The address comes from the EMAIL constant at the top of the file; replace it with the signed-in user's address, for example by turning it into a prop. In the demo, Open Mail marks the email as verified, but in production verification happens when the user follows the link, so point that button at a mail app or remove it. Connect Resend to your email service and #change to your account settings.

The screen shows the address the link was sent to and a link to change it. The BottomBar has an Open Mail Button and a Resend Button that disables itself for a 45-second countdown. Opening mail shows a verified confirmation in this sample.
Installation
The CLI also adds what it builds on: Bottom Bar, Button, Icon, Screen, Text. On React Native it also adds the animated view components/ui/animated-view.tsx.
Manual
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Button, Icon, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/verify-email.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Button, Icon, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/verify-email.tsx:
- Update the import paths to match your project.
- Install the dependencies:
-
Add the pieces it builds on: Bottom Bar, Button, Icon, Screen, Text, and the animated view
components/ui/animated-view.tsxfrom the next step. -
Copy the animated view into
components/ui/animated-view.tsx:
- Copy the source into
components/blocks/verify-email.tsx:
- Update the import paths to match your project.
-
Target iOS 17 or later.
-
Add the Swift package to your app:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Add the files to your app target.
- Set
minSdkto 24 or higher and add the dependencies:
- Copy the theme files every view uses:
- Copy the source and every file it uses:
- Update the
com.esuiss.uipackage names to match your project.
Usage
Replace EMAIL with the user's address. Use onOpenMail to open the mail app and onChangeAddress to go back to the email field.
