import { Effect } from 'effect' import { RuntimeServer, UsersService } from '@workspace/api' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@workspace/ui/components/card' const main = Effect.gen(function* () { const usersService = yield* UsersService const allUsers = yield* usersService.getAllUsers return allUsers }) export default async function UsersPage() { const result = await RuntimeServer.runPromise( main.pipe( Effect.match({ onFailure: error => { console.error('Failed to load users:', error) return { success: false as const, error: 'Failed to load users' } }, onSuccess: userList => ({ success: true as const, data: userList }), }) ) ) if (!result.success) { return (

Error: {result.error}

) } const users = result.data return (

Users

{users.map((user) => ( {user.name || 'Unnamed User'} {user.email}

Created: {new Date(user.createdAt).toLocaleDateString()}

))}
{users.length === 0 && ( No users found There are no users in the database yet. )}
) }