Client/lib/view/pages/talk/talkNavigator.dart

17 lines
749 B
Dart

import 'package:flutter/material.dart';
import 'package:flutter_split_view/flutter_split_view.dart';
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 onSecondaryScreen = false}) {
if(isSecondaryVisible(context)) {
SplitViewState splitView = SplitView.of(context);
onSecondaryScreen ? splitView.setSecondary(view) : splitView.push(view);
} else {
Navigator.of(context).push(MaterialPageRoute(builder: (context) => view));
}
}
}