"use client"; import type { GroupSettingsViewModelState } from "@/features/groups/components/use-group-settings-view-model"; type GroupSettingsAuditCardProps = { vm: GroupSettingsViewModelState; }; export default function GroupSettingsAuditCard({ vm }: GroupSettingsAuditCardProps) { if (!vm.canViewAudit) return null; return (
Audit log
{vm.auditOpen ? ( <>
Total logs
{vm.events.length}
Logs today
{vm.logsToday}
{([ { key: "entries", label: "Entries" }, { key: "members", label: "Members" }, { key: "tags", label: "Tags" }, { key: "settings", label: "Settings" } ] as const).map(filter => ( ))}
vm.setAuditQuery(event.target.value)} />
vm.setAuditFrom(event.target.value)} />
vm.setAuditTo(event.target.value)} />
{!vm.filteredEvents.length ? (
No audit events match your filters.
) : (
{vm.filteredEvents.slice(0, vm.auditLimit).map(event => (
{event.eventType}
Actor: {vm.getMemberLabel(event.actorUserId)} Role: {event.actorRole ?? "-"} {new Date(event.createdAt).toLocaleString()}
))} {vm.filteredEvents.length > vm.auditLimit ? ( ) : null}
)} ) : (
Audit log is collapsed.
)}
); }