Users hooks

React hooks for users — list, get, update, delete. Admin only.

Usage

TSX
import Aeontel from "@aeontel/sdk";
import { AeontelProvider, useListUsers } from "@aeontel/react";

const client = new Aeontel(import.meta.env.VITE_AEONTEL_API_KEY);

function App() {
  return (
    <AeontelProvider client={client}>
      <UserList />
    </AeontelProvider>
  );
}

function UserList() {
  const { data, isLoading } = useListUsers();
  if (isLoading) return <p>Loading…</p>;
  return (
    <ul>
      {data?.data.map((u) => (
        <li key={u.id}>{u.email}</li>
      ))}
    </ul>
  );
}

Hooks

useDeleteUser mutation

Delete a user (admin only). Auto-invalidates user queries on success.

TypeScript
useDeleteUser(options?: MutationOpts<SuccessResponse, string>)

Types: SuccessResponse

TypeScript
const del = useDeleteUser();
del.mutate("usr_abc123");

useListUsers query

Fetch paginated list of users (admin only).

TypeScript
useListUsers(params?: ListUsersParams, options?: QueryOpts<PaginatedResponse<User>>)

Types: ListUsersParams · User

TypeScript
const { data, isLoading } = useListUsers();

useMe composite

Fetch the currently authenticated user. Resolves the bearer token / cookie session to the underlying user row server-side. Use this to render the signed-in identity without knowing the user's prefixed ID up front (header avatars, mobile sign-in screens, CLI whoami, etc.).

TypeScript
useMe(options?: QueryOpts<User>)

Types: User

TypeScript
const { data: me } = useMe();
if (me) return <p>Signed in as {me.email}</p>;

useRetrieveUser query

Fetch a single user by ID (admin only).

TypeScript
useRetrieveUser(id: string, options?: QueryOpts<User>)

Types: User

TypeScript
const { data: user } = useRetrieveUser("usr_abc123");

useUpdateUser mutation

Update a user (admin only). Optimistically updates the detail cache and invalidates on settle.

TypeScript
useUpdateUser(options?: MutationOpts<User, UpdateUserParams>)

Types: User

TypeScript
const update = useUpdateUser();
update.mutate({ id: "usr_abc123", role: "admin" });