Refactor: Suppress initial render transitions

This commit is contained in:
gpt-engineer-app[bot]
2025-10-10 15:00:29 +00:00
parent 4960caa41a
commit 88983dae3c
2 changed files with 14 additions and 1 deletions

View File

@@ -69,6 +69,7 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
const [actionLoading, setActionLoading] = useState<string | null>(null);
const [notes, setNotes] = useState<Record<string, string>>({});
const [activeTab, setActiveTab] = useState<QueueTab>('mainQueue');
const [hasRenderedOnce, setHasRenderedOnce] = useState(false);
const [activeEntityFilter, setActiveEntityFilter] = useState<EntityFilter>('all');
const [activeStatusFilter, setActiveStatusFilter] = useState<StatusFilter>('pending');
const [photoModalOpen, setPhotoModalOpen] = useState(false);
@@ -144,6 +145,15 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
itemsRef.current = items;
}, [items]);
// Enable transitions after initial render
useEffect(() => {
if (!loading && items.length > 0 && !hasRenderedOnce) {
// Delay to ensure DOM has painted
const timer = setTimeout(() => setHasRenderedOnce(true), 100);
return () => clearTimeout(timer);
}
}, [loading, items.length, hasRenderedOnce]);
const fetchItems = useCallback(async (entityFilter: EntityFilter = 'all', statusFilter: StatusFilter = 'pending', silent = false, tab: QueueTab = 'mainQueue') => {
if (!userRef.current) {
return;
@@ -1698,6 +1708,7 @@ export const ModerationQueue = forwardRef<ModerationQueueRef>((props, ref) => {
isAdmin={isAdmin()}
isSuperuser={isSuperuser()}
queueIsLoading={queue.isLoading}
isInitialRender={!hasRenderedOnce}
onNoteChange={handleNoteChange}
onApprove={handleModerationAction}
onResetToPending={handleResetToPending}