suiss/uim · Block

Users Table

A searchable user list with role filters, status badges and bulk actions for selected users.

Users Table 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
Users Table on iOS in light mode

A collapsing Header holds a search InputGroup and a ChipGroup that filters by role. Rows show an Avatar, role and a Badge for status. The SelectionList trigger enters select mode, and the SelectionListBar applies bulk actions: make Editor, activate or suspend. An invite Button sits in the header, and the admin TabBar switches sections.

Installation

$ pnpm dlx @esuiss/uim@latest add users-table

The CLI also adds what it builds on: Avatar, Badge, Button, Chip, Header, Icon, Input Group, Screen, Selection List, Tab Bar, Text.

Manual

  1. Install the dependencies:
npx expo install cn phosphor-react-native react-native-svg
  1. Add the pieces it builds on: Avatar, Badge, Button, Chip, Header, Icon, Input Group, Screen, Selection List, Tab Bar, Text.

  2. Copy the source into components/blocks/users-table.tsx:

uniwind/components/blocks/users-table.tsx
import { cn } from "cn"
import {
  ChartBarIcon,
  GearIcon,
  MagnifyingGlassIcon,
  type Icon as PhosphorIcon,
  PlusIcon,
  ShieldIcon,
  UsersIcon,
} from "phosphor-react-native"
import * as React from "react"
import { View } from "react-native"
import {
  SelectionList,
  SelectionListBar,
  SelectionListItem,
  1. Update the import paths to match your project.

Usage

import { UsersTable } from "@/components/blocks/users-table"
<UsersTable />

Replace INITIAL_USERS and ROLES with your data. Use onInvite, onFilterChange, onBulkUpdate and onNavigate to connect the screen to your API.