import 'package:flutter/material.dart'; extension BuildContextExt on BuildContext { double get deviceHeight => MediaQuery.of(this).size.height; double get deviceWidth => MediaQuery.of(this).size.width; } extension NavigatorExt on BuildContext { void pop([T? result]) { Navigator.pop(this, result); } void popToRoot() { Navigator.popUntil(this, (route) => route.isFirst); } Future push(Widget widget, [String? name]) async { return Navigator.push( this, MaterialPageRoute( builder: (context) => widget, settings: RouteSettings(name: name), ), ); } Future pushReplacement( Widget widget) async { return Navigator.pushReplacement( this, MaterialPageRoute(builder: (context) => widget), ); } Future pushAndRemoveUntil( Widget widget, bool Function(Route route) predicate) async { return Navigator.pushAndRemoveUntil( this, MaterialPageRoute(builder: (context) => widget), predicate, ); } }