hide multiselect icon if peers is empty

Signed-off-by: 21pages <pages21@163.com>
This commit is contained in:
21pages 2023-08-10 21:32:26 +08:00
parent 1be383e50e
commit 16c94fb1d0
2 changed files with 28 additions and 24 deletions

View File

@ -262,6 +262,7 @@ class _PeerTabPageState extends State<PeerTabPage>
Widget _createMultiSelection() { Widget _createMultiSelection() {
final textColor = Theme.of(context).textTheme.titleLarge?.color; final textColor = Theme.of(context).textTheme.titleLarge?.color;
final model = Provider.of<PeerTabModel>(context); final model = Provider.of<PeerTabModel>(context);
if (model.currentTabCachedPeers.isEmpty) return Offstage();
return Container( return Container(
padding: EdgeInsets.all(4.0), padding: EdgeInsets.all(4.0),
child: InkWell( child: InkWell(

View File

@ -124,31 +124,34 @@ class _PeersViewState extends State<_PeersView> with WindowListener {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ChangeNotifierProvider<Peers>( return ChangeNotifierProvider<Peers>(
create: (context) => widget.peers, create: (context) => widget.peers,
child: Consumer<Peers>( child: Consumer<Peers>(builder: (context, peers, child) {
builder: (context, peers, child) => peers.peers.isEmpty if (peers.peers.isEmpty) {
? Center( gFFI.peerTabModel.setCurrentTabCachedPeers([]);
child: Column( return Center(
mainAxisAlignment: MainAxisAlignment.center, child: Column(
children: [ mainAxisAlignment: MainAxisAlignment.center,
Icon( children: [
Icons.sentiment_very_dissatisfied_rounded, Icon(
color: Theme.of(context).tabBarTheme.labelColor, Icons.sentiment_very_dissatisfied_rounded,
size: 40, color: Theme.of(context).tabBarTheme.labelColor,
).paddingOnly(bottom: 10), size: 40,
Text( ).paddingOnly(bottom: 10),
translate( Text(
_emptyMessages[widget.peers.loadEvent] ?? 'Empty', translate(
), _emptyMessages[widget.peers.loadEvent] ?? 'Empty',
textAlign: TextAlign.center, ),
style: TextStyle( textAlign: TextAlign.center,
color: Theme.of(context).tabBarTheme.labelColor, style: TextStyle(
), color: Theme.of(context).tabBarTheme.labelColor,
), ),
],
), ),
) ],
: _buildPeersView(peers), ),
), );
} else {
return _buildPeersView(peers);
}
}),
); );
} }