frosty/lib/widgets/stream_sort_button.dart

39 lines
1 KiB
Dart
Raw Permalink Normal View History

import 'package:flutter/material.dart';
import 'package:frosty/apis/twitch_gql_api.dart';
/// Toggles viewer-count sort between descending (default) and ascending.
class StreamSortButton extends StatelessWidget {
final StreamViewerSort sortOrder;
final ValueChanged<StreamViewerSort> onChanged;
const StreamSortButton({
super.key,
required this.sortOrder,
required this.onChanged,
});
@override
Widget build(BuildContext context) {
final isAsc = sortOrder == StreamViewerSort.viewersAsc;
return PopupMenuButton<StreamViewerSort>(
tooltip: 'Sort by viewers',
icon: Icon(
isAsc ? Icons.arrow_upward_rounded : Icons.arrow_downward_rounded,
),
initialValue: sortOrder,
onSelected: onChanged,
itemBuilder: (context) => [
const PopupMenuItem(
value: StreamViewerSort.viewersDesc,
child: Text('Most viewers'),
),
const PopupMenuItem(
value: StreamViewerSort.viewersAsc,
child: Text('Fewest viewers'),
),
],
);
}
}