Fixed bug in chat-search and refactored talkNavigator

This commit is contained in:
Elias Müller 2023-09-16 11:37:28 +02:00
parent 258206a7a5
commit 02dc1a1ecd
2 changed files with 5 additions and 3 deletions

View File

@ -1,6 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_split_view/flutter_split_view.dart';
import 'package:jiffy/jiffy.dart'; import 'package:jiffy/jiffy.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart'; import 'package:shared_preferences/shared_preferences.dart';
@ -59,7 +58,7 @@ class _ChatTileState extends State<ChatTile> {
return Consumer<ChatProps>(builder: (context, chatData, child) { return Consumer<ChatProps>(builder: (context, chatData, child) {
return ListTile( return ListTile(
style: ListTileStyle.list, style: ListTileStyle.list,
tileColor: chatData.currentToken() == widget.data.token && SplitView.of(context).pageCount > 1 tileColor: chatData.currentToken() == widget.data.token && TalkNavigator.isSecondaryVisible(context)
? Theme.of(context).primaryColor.withAlpha(100) ? Theme.of(context).primaryColor.withAlpha(100)
: null, : null,
leading: Stack( leading: Stack(

View File

@ -4,8 +4,11 @@ import 'package:flutter_split_view/flutter_split_view.dart';
import 'package:persistent_bottom_nav_bar/persistent_tab_view.dart'; import 'package:persistent_bottom_nav_bar/persistent_tab_view.dart';
class TalkNavigator { class TalkNavigator {
static bool hasSplitViewState(BuildContext context) => context.findAncestorStateOfType<SplitViewState>() != null;
static bool isSecondaryVisible(BuildContext context) => hasSplitViewState(context) && SplitView.of(context).isSecondaryVisible;
static void pushSplitView(BuildContext context, Widget view, {bool overrideToSingleSubScreen = false}) { static void pushSplitView(BuildContext context, Widget view, {bool overrideToSingleSubScreen = false}) {
if(context.findAncestorStateOfType<SplitViewState>() != null && SplitView.of(context).isSecondaryVisible) { if(isSecondaryVisible(context)) {
SplitViewState splitView = SplitView.of(context); SplitViewState splitView = SplitView.of(context);
overrideToSingleSubScreen ? splitView.setSecondary(view) : splitView.push(view); overrideToSingleSubScreen ? splitView.setSecondary(view) : splitView.push(view);
} else { } else {