Skip to content

Instantly share code, notes, and snippets.

@yongjhih
Created July 25, 2022 04:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save yongjhih/53dd18472a16db368e4fde0b2a27aef2 to your computer and use it in GitHub Desktop.
Save yongjhih/53dd18472a16db368e4fde0b2a27aef2 to your computer and use it in GitHub Desktop.
xtension BuildContextX on BuildContext {
/// contextOrNull?.navigator().maybePop();
NavigatorState navigator({
bool rootNavigator = false,
}) => Navigator.of(this, rootNavigator: rootNavigator);
NavigatorState? navigatorOrNull({
bool rootNavigator = false,
}) => tryOrNull<NavigatorState>(() => navigator(rootNavigator: rootNavigator));
/// contextOrNull?.mediaQuery().size;
MediaQueryData mediaQuery() => MediaQuery.of(this);
MediaQueryData? mediaQueryOrNull() => tryOrNull<MediaQueryData>(() => MediaQuery.of(this));
State<StatefulWidget>? get stateOrNull => this is StatefulElement
? tryOrNull<State<StatefulWidget>>(() => (this as StatefulElement).state)
: null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment