replace loading symbol with shimmering cards (#4508)
This commit is contained in:
parent
fc78da4731
commit
e09686ede9
1 changed files with 44 additions and 2 deletions
|
|
@ -20,6 +20,7 @@ import 'package:fluffychat/pangea/course_settings/pin_clipper.dart';
|
|||
import 'package:fluffychat/pangea/course_settings/topic_participant_list.dart';
|
||||
import 'package:fluffychat/pangea/events/constants/pangea_event_types.dart';
|
||||
import 'package:fluffychat/widgets/matrix.dart';
|
||||
import 'package:shimmer/shimmer.dart';
|
||||
|
||||
class CourseSettings extends StatelessWidget {
|
||||
// final Room room;
|
||||
|
|
@ -237,8 +238,8 @@ class CourseSettings extends StatelessWidget {
|
|||
),
|
||||
if (!locked)
|
||||
controller.loadingActivities
|
||||
? const Center(
|
||||
child: CircularProgressIndicator.adaptive(),
|
||||
? ActivityCardPlaceholder(
|
||||
activityCount: topic.activityIds.length,
|
||||
)
|
||||
: activityError != null
|
||||
? ErrorIndicator(
|
||||
|
|
@ -265,6 +266,47 @@ class CourseSettings extends StatelessWidget {
|
|||
}
|
||||
}
|
||||
|
||||
class ActivityCardPlaceholder extends StatelessWidget {
|
||||
final int activityCount;
|
||||
|
||||
const ActivityCardPlaceholder({
|
||||
super.key,
|
||||
required this.activityCount,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final int shimmerCount = activityCount;
|
||||
final theme = Theme.of(context);
|
||||
final isColumnMode = FluffyThemes.isColumnMode(context);
|
||||
|
||||
return SizedBox(
|
||||
height: isColumnMode ? 290.0 : 210.0,
|
||||
child: ListView.builder(
|
||||
scrollDirection: Axis.horizontal,
|
||||
itemCount: shimmerCount,
|
||||
itemBuilder: (context, index) {
|
||||
return Padding(
|
||||
padding: const EdgeInsets.only(right: 24.0),
|
||||
child: Shimmer.fromColors(
|
||||
baseColor: theme.colorScheme.primary.withAlpha(20),
|
||||
highlightColor: theme.colorScheme.primary.withAlpha(50),
|
||||
child: Container(
|
||||
width: isColumnMode ? 160.0 : 120.0,
|
||||
height: isColumnMode ? 280.0 : 200.0,
|
||||
decoration: BoxDecoration(
|
||||
color: theme.colorScheme.surfaceContainer,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class TopicActivitiesList extends StatefulWidget {
|
||||
final Room room;
|
||||
final Map<String, ActivityPlanModel> activities;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue