Utilize a unique ID for activity logs to improve rendering perf

This commit is contained in:
DaneEveritt 2022-07-10 14:53:29 -04:00
parent e878015109
commit d6c30092ec
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
5 changed files with 8 additions and 2 deletions

View file

@ -18,6 +18,10 @@ class ActivityLogTransformer extends BaseClientTransformer
public function transform(ActivityLog $model): array
{
return [
// This is not for security, it is only to provide a unique identifier to
// the front-end for each entry to improve rendering performance since there
// is nothing else sufficiently unique to key off at this point.
'id' => sha1($model->id),
'batch' => $model->batch,
'event' => $model->event,
'is_api' => !is_null($model->api_key_id),

View file

@ -20,6 +20,7 @@ interface SSHKey extends Model {
}
interface ActivityLog extends Model<'actor'> {
id: string;
batch: UUID | null;
event: string;
ip: string | null;

View file

@ -31,6 +31,7 @@ export default class Transformers {
const { actor } = attributes.relationships || {};
return {
id: attributes.id,
batch: attributes.batch,
event: attributes.event,
ip: attributes.ip,

View file

@ -49,7 +49,7 @@ export default () => {
) : (
<div className={'bg-gray-700'}>
{data?.items.map((activity) => (
<ActivityLogEntry key={activity.timestamp.toString() + activity.event} activity={activity}>
<ActivityLogEntry key={activity.id} activity={activity}>
{typeof activity.properties.useragent === 'string' && (
<Tooltip content={activity.properties.useragent} placement={'top'}>
<span>

View file

@ -52,7 +52,7 @@ export default () => {
) : (
<div className={'bg-gray-700'}>
{data?.items.map((activity) => (
<ActivityLogEntry key={activity.timestamp.toString() + activity.event} activity={activity}>
<ActivityLogEntry key={activity.id} activity={activity}>
<span />
</ActivityLogEntry>
))}