perf: fix image loading performance across all screens
- Replace Image.network (no cache) with CachedNetworkImage in contributor_profile_screen - Replace NetworkImage (no cache) with CachedNetworkImageProvider in desktop_topbar and contribute_screen (leaderboard avatars) - Add maxWidthDiskCache + maxHeightDiskCache to all 23 CachedNetworkImage calls - Add missing memCacheWidth/Height to review_card (36x36 avatar) and learn_more related events (140x100) - Add dynamic memCache sizing to tier_avatar_ring based on widget size Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
// CTR-004 — Public contributor profile page.
|
||||
// Shows avatar, tier ring, EP stats, and submission grid for any contributor.
|
||||
|
||||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../features/gamification/models/gamification_models.dart';
|
||||
@@ -215,10 +216,15 @@ class _ContributorProfileScreenState extends State<ContributorProfileScreen> {
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
child: SizedBox.expand(
|
||||
child: Image.network(
|
||||
firstImage,
|
||||
child: CachedNetworkImage(
|
||||
imageUrl: firstImage,
|
||||
fit: BoxFit.cover,
|
||||
errorBuilder: (_, __, ___) => Container(color: const Color(0xFF334155)),
|
||||
memCacheWidth: 400,
|
||||
memCacheHeight: 300,
|
||||
maxWidthDiskCache: 800,
|
||||
maxHeightDiskCache: 600,
|
||||
placeholder: (_, __) => Container(color: const Color(0xFF1E293B)),
|
||||
errorWidget: (_, __, ___) => Container(color: const Color(0xFF334155)),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user