Fix superuser release locks RPC

This commit is contained in:
gpt-engineer-app[bot]
2025-11-05 01:21:55 +00:00
parent f750763c63
commit 791205210f
3 changed files with 141 additions and 25 deletions

View File

@@ -12,11 +12,15 @@ interface EditHistoryRecord {
id: string;
item_id: string;
edited_at: string;
previous_data: Record<string, unknown>;
new_data: Record<string, unknown>;
edit_reason: string | null;
changed_fields: string[];
profiles?: {
field_changes?: Array<{
id: string;
field_name: string;
old_value: string | null;
new_value: string | null;
}>;
editor?: {
username: string;
avatar_url?: string | null;
} | null;
@@ -44,11 +48,15 @@ export function EditHistoryAccordion({ submissionId }: EditHistoryAccordionProps
id,
item_id,
edited_at,
previous_data,
new_data,
edit_reason,
changed_fields,
profiles:edited_by (
field_changes:item_field_changes(
id,
field_name,
old_value,
new_value
),
editor:profiles!item_edit_history_edited_by_fkey(
username,
avatar_url
)
@@ -111,19 +119,30 @@ export function EditHistoryAccordion({ submissionId }: EditHistoryAccordionProps
<div className="space-y-4">
<ScrollArea className="h-[400px] pr-4">
<div className="space-y-3">
{editHistory.map((entry: EditHistoryRecord) => (
<EditHistoryEntry
key={entry.id}
editId={entry.id}
editorName={entry.profiles?.username || 'Unknown User'}
editorAvatar={entry.profiles?.avatar_url || undefined}
timestamp={entry.edited_at}
changedFields={entry.changed_fields || []}
editReason={entry.edit_reason || undefined}
beforeData={entry.previous_data}
afterData={entry.new_data}
/>
))}
{editHistory.map((entry: EditHistoryRecord) => {
// Transform relational field_changes into beforeData/afterData objects
const beforeData: Record<string, unknown> = {};
const afterData: Record<string, unknown> = {};
entry.field_changes?.forEach(change => {
beforeData[change.field_name] = change.old_value;
afterData[change.field_name] = change.new_value;
});
return (
<EditHistoryEntry
key={entry.id}
editId={entry.id}
editorName={entry.editor?.username || 'Unknown User'}
editorAvatar={entry.editor?.avatar_url || undefined}
timestamp={entry.edited_at}
changedFields={entry.changed_fields || []}
editReason={entry.edit_reason || undefined}
beforeData={beforeData}
afterData={afterData}
/>
);
})}
</div>
</ScrollArea>