import 'package:flutter/material.dart'; import 'package:frontend/provider/quote_provider.dart'; import 'package:frontend/values/constants.dart'; import 'package:provider/provider.dart'; class LeaderboardPage extends StatefulWidget { const LeaderboardPage({super.key}); @override State createState() => _LeaderboardPageState(); } class _LeaderboardPageState extends State { @override void initState() { super.initState(); // reset filter once, only when page is created WidgetsBinding.instance.addPostFrameCallback((_) { final provider = context.read(); provider.resetLeaderboardFilter(); }); } @override Widget build(BuildContext context) { final provider = context.watch(); return Center( child: Column( children: [ Expanded( child: ListView.builder( padding: EdgeInsets.all(Constants.edgeInset), itemCount: provider.sortedAuthorCounts.length, itemBuilder: (context, index) { return Card( color: provider.getLeaderboardEntryBgColor(context, index), child: ListTile( onTap: () { provider.showListPageFilteredByAuthor(context, index); }, contentPadding: EdgeInsets.symmetric( vertical: 0, horizontal: Constants.edgeInset, ), title: Text(provider.sortedAuthorCounts[index].key, style: TextStyle( color: provider.getLeaderboardEntryFgColor(context, index) ), ), trailing: Text(provider.sortedAuthorCounts[index].value.toString(), style: TextStyle( fontSize: 16, color: provider.getLeaderboardEntryFgColor(context, index), ), ), ), ); }, ), ), ], ), ); } }