suiss/uim · Block

Verify Email

A check-your-inbox screen after sign-up, with open mail, resend and change-address actions.

Verify Email is an open-source mobile screen from suiss/uim for React Native and Expo, with SwiftUI and Jetpack Compose versions built from the same design tokens. The @esuiss/uim CLI copies its source into your project, so you own the code.

iOS
Verify Email on iOS in light mode

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

$ pnpm dlx @esuiss/uim@latest add verify-email

The CLI also adds what it builds on: Bottom Bar, Button, Icon, Screen, Text.

Manual

  1. Install the dependencies:
npx expo install phosphor-react-native react-native-reanimated react-native-svg react-native-worklets
  1. Add the pieces it builds on: Bottom Bar, Button, Icon, Screen, Text.

  2. Copy the source into components/blocks/verify-email.tsx:

uniwind/components/blocks/verify-email.tsx
import { CheckIcon, EnvelopeSimpleIcon } from "phosphor-react-native"
import * as React from "react"
import { Pressable, ScrollView, View } from "react-native"
import { FadeInDown, ReduceMotion } from "react-native-reanimated"
import { AnimatedView } from "@/components/ui/animated-view"
import { BottomBar, BottomBarContent } from "@/components/ui/bottom-bar"
import { Button } from "@/components/ui/button"
import { Icon } from "@/components/ui/icon"
import { Screen } from "@/components/ui/screen"
import { Text } from "@/components/ui/text"

const EMAIL = "[email protected]"

function VerifyEmail({
  onChangeAddress,
  onOpenMail,
  1. Update the import paths to match your project.

Usage

import { VerifyEmail } from "@/components/blocks/verify-email"
<VerifyEmail />

Replace EMAIL with the user's address. Use onOpenMail to open the mail app and onChangeAddress to go back to the email field.