# Record Activity Panel
URL: /docs/web/components/record-activity-panel
Record Activity Panel component.
**Demo:**
```tsx
'use client';
// @custom-demo
import { useState } from 'react';
import { RecordActivityPanel } from '@docyrus/ui/components/record-activity-panel';
import { Button } from '@docyrus/ui/primitives/ui/button';
import { cn } from '@docyrus/ui/primitives/lib/utils';
import { PropControls } from '@/components/prop-controls';
import { useDemoData } from '@/data/record-activity-panel-data';
export function RecordActivityPanelDemo() {
const { props, controls, actions } = useDemoData();
const [open, setOpen] = useState(false);
return (
);
}
```
## Installation
```bash
pnpm dlx @docyrus/cli add @docyrus/ui-record-activity-panel
```
**Dependencies:**
- [lucide-react](https://www.npmjs.com/package/lucide-react)
## Usage
```tsx
import { RecordActivityPanel } from "@docyrus/ui/components/record-activity-panel";
import type { RecordActivity } from "@docyrus/ui/components/record-activity-panel";
const activities: RecordActivity[] = [
{
id: "act-1",
description: "Status changed from In Progress to In Review",
shortDescription: "Status changed",
icon: null,
color: "#f59e0b",
table_name: "tasks",
operation: "STATUS_UPDATE",
tenant_data_source_id: { id: "ds-1", name: "Tasks" },
created_on: "2025-12-17T09:30:00Z",
created_by: "u-alice",
created_by_user: { firstname: "Alice", lastname: "Johnson", name: "Alice Johnson", email: "alice@docyrus.com", mobile: null },
data_source_name: "Tasks",
title: "Task #341"
}
];
function Demo() {
return ;
}
```
## API Reference
| Prop | Type | Default |
|------|------|---------|
| `activities` | `RecordActivity[]` | — |
| `isLoading` | `boolean` | `false` |
| `className` | `string` | — |
## Components
| Component | Description |
|-----------|-------------|
| `RecordActivityPanel` | Public export |