suiss/uim · Block

Log Activity

An admin activity log grouped by day, with type filters, expandable before and after values and an Export button.

Log Activity 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
Log Activity on iOS in light mode

An admin screen with a collapsing Header and large title, a scrollable ChipGroup to filter by event type (Price, Content, Security, Order, User), and events grouped under day headings. Events that carry a change expand with Collapsible to show the before and after values. A TabBar at the bottom switches between Users, Roles, Activity and Settings; only Activity has content in the sample.

Installation

$ pnpm dlx @esuiss/uim@latest add log-activity

The CLI also adds what it builds on: Button, Chip, Collapsible, Header, Icon, Screen, Tab Bar, Text.

Manual

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

  2. Copy the source into components/blocks/log-activity.tsx:

uniwind/components/blocks/log-activity.tsx
import { cn } from "cn"
import {
  CaretRightIcon,
  ChartBarIcon,
  GearIcon,
  HandbagIcon,
  NotePencilIcon,
  type Icon as PhosphorIcon,
  ShieldIcon,
  TagIcon,
  UserIcon,
  UsersIcon,
} from "phosphor-react-native"
import * as React from "react"
import { I18nManager, View } from "react-native"
import { FadeIn, FadeInDown, ReduceMotion } from "react-native-reanimated"
  1. Update the import paths to match your project.

Usage

import { LogActivity } from "@/components/blocks/log-activity"
<LogActivity />

Replace EVENTS with your audit log and KINDS with your event types. Wire onFilterChange, onExport (receives the current filter) and onNavigate (receives the selected tab) to your app.