mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 21:51:12 -05:00
Refactor: Suppress initial render transitions
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user