import React from 'react';
import superagent from 'superagent';
import { Table, Message, Loader, Label } from 'semantic-ui-react';
/**
* Audit log viewer for a single OAuth client. Paged.
*/
export default class OAuthAuditLog extends React.Component {
constructor(props) {
super(props);
this.state = { loading: true, events: [], error: null };
}
async componentDidMount() {
if (!this.props.uniqueId) return;
try {
const res = await superagent
.get(`/api/admin/oauth/clients/${this.props.uniqueId}/audit`)
.query({ limit: 200 })
.accept('json');
this.setState({ events: res.body.events || [], loading: false });
} catch (e) {
this.setState({ error: e.response?.body?.message || e.message, loading: false });
}
}
eventColor(eventType) {
if (eventType.includes('failure') || eventType.includes('denied') || eventType.includes('reuse')) return 'red';
if (eventType === 'client_disabled' || eventType === 'client_deleted' || eventType.includes('revoked')) return 'orange';
if (eventType === 'client_created' || eventType === 'client_enabled') return 'green';
return 'grey';
}
render() {
const { loading, events, error } = this.state;
if (loading) return