mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 23:11:12 -05:00
Refactor versioning utility functions
This commit is contained in:
@@ -111,12 +111,30 @@ export const useModerationStats = (options: UseModerationStatsOptions = {}) => {
|
||||
|
||||
const channel = supabase
|
||||
.channel('moderation-stats-realtime')
|
||||
// Listen to ALL events on content_submissions without filter
|
||||
// Manual filtering catches submissions leaving pending state
|
||||
.on('postgres_changes', {
|
||||
event: 'INSERT',
|
||||
event: '*',
|
||||
schema: 'public',
|
||||
table: 'content_submissions',
|
||||
filter: 'status=eq.pending'
|
||||
}, debouncedFetchStats)
|
||||
table: 'content_submissions'
|
||||
}, (payload) => {
|
||||
const oldStatus = (payload.old as any)?.status;
|
||||
const newStatus = (payload.new as any)?.status;
|
||||
const oldAssignedTo = (payload.old as any)?.assigned_to;
|
||||
const newAssignedTo = (payload.new as any)?.assigned_to;
|
||||
const oldLockedUntil = (payload.old as any)?.locked_until;
|
||||
const newLockedUntil = (payload.new as any)?.locked_until;
|
||||
|
||||
// Only refresh if change affects pending count or assignments
|
||||
if (
|
||||
payload.eventType === 'INSERT' && newStatus === 'pending' ||
|
||||
payload.eventType === 'UPDATE' && (oldStatus === 'pending' || newStatus === 'pending') ||
|
||||
payload.eventType === 'DELETE' && oldStatus === 'pending' ||
|
||||
payload.eventType === 'UPDATE' && (oldAssignedTo !== newAssignedTo || oldLockedUntil !== newLockedUntil)
|
||||
) {
|
||||
debouncedFetchStats();
|
||||
}
|
||||
})
|
||||
.on('postgres_changes', {
|
||||
event: 'INSERT',
|
||||
schema: 'public',
|
||||
|
||||
Reference in New Issue
Block a user