mirror of
https://github.com/HChaZZY/PiliPlus.git
synced 2025-12-06 09:13:48 +08:00
* opt: cache * opt: MediaListPanel * feat: nested replyreply panel * tweaks * opt: abstract class * opt: PageStorageKey * opt: contextExt * opt: EpisodePanel * opt * opt: context instead GlobalKey * feat: jump to reply * refa: reply_reply * fix: jump * fix: index * update Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * opt: keepalive * reapply: nested replyreply * mod: spacing * opt: CommonSlidePageState * fix drag bottomsheet Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * opt reply jump Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * opt reply2reply Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * tweaks Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * tweaks Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * reapply: jumpToReply * fix: padding * fix: anim * fix some panels Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> * opt: implements Scaffold * opt: remove keepalive * revert: GlobalKey * tweaks Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me> --------- Co-authored-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
75 lines
2.6 KiB
Dart
75 lines
2.6 KiB
Dart
import 'package:flutter/material.dart';
|
|
|
|
/// from Getx
|
|
extension ContextExtensions on BuildContext {
|
|
/// The same of [MediaQuery.of(context).size]
|
|
Size get mediaQuerySize => MediaQuery.sizeOf(this);
|
|
|
|
/// The same of [MediaQuery.of(context).size.height]
|
|
/// Note: updates when you rezise your screen (like on a browser or
|
|
/// desktop window)
|
|
double get height => MediaQuery.heightOf(this);
|
|
|
|
/// The same of [MediaQuery.of(context).size.width]
|
|
/// Note: updates when you rezise your screen (like on a browser or
|
|
/// desktop window)
|
|
double get width => MediaQuery.widthOf(this);
|
|
|
|
/// similar to [MediaQuery.of(context).padding]
|
|
ThemeData get theme => Theme.of(this);
|
|
|
|
/// Check if dark mode theme is enable
|
|
bool get isDarkMode => (Theme.brightnessOf(this) == Brightness.dark);
|
|
|
|
/// give access to Theme.of(context).iconTheme.color
|
|
Color? get iconColor => IconTheme.of(this).color;
|
|
|
|
/// similar to [MediaQuery.of(context).padding]
|
|
TextTheme get textTheme => TextTheme.of(this);
|
|
|
|
/// similar to [MediaQuery.of(context).padding]
|
|
EdgeInsets get mediaQueryPadding => MediaQuery.viewPaddingOf(this);
|
|
|
|
/// similar to [MediaQuery.of(context).padding]
|
|
MediaQueryData get mediaQuery => MediaQuery.of(this);
|
|
|
|
/// similar to [MediaQuery.of(context).viewPadding]
|
|
EdgeInsets get mediaQueryViewPadding => MediaQuery.viewPaddingOf(this);
|
|
|
|
/// similar to [MediaQuery.of(context).viewInsets]
|
|
EdgeInsets get mediaQueryViewInsets => MediaQuery.viewInsetsOf(this);
|
|
|
|
/// similar to [MediaQuery.of(context).orientation]
|
|
Orientation get orientation => MediaQuery.orientationOf(this);
|
|
|
|
/// check if device is on landscape mode
|
|
bool get isLandscape => orientation == Orientation.landscape;
|
|
|
|
/// check if device is on portrait mode
|
|
bool get isPortrait => orientation == Orientation.portrait;
|
|
|
|
/// similar to [MediaQuery.of(this).devicePixelRatio]
|
|
double get devicePixelRatio => MediaQuery.devicePixelRatioOf(this);
|
|
|
|
/// similar to [MediaQuery.of(this).textScaleFactor]
|
|
TextScaler get textScaler => MediaQuery.textScalerOf(this);
|
|
|
|
/// get the shortestSide from screen
|
|
double get mediaQueryShortestSide => mediaQuerySize.shortestSide;
|
|
|
|
/// True if width be larger than 800
|
|
bool get showNavbar => (width > 800);
|
|
|
|
/// True if the shortestSide is smaller than 600p
|
|
bool get isPhone => (mediaQueryShortestSide < 600);
|
|
|
|
/// True if the shortestSide is largest than 600p
|
|
bool get isSmallTablet => (mediaQueryShortestSide >= 600);
|
|
|
|
/// True if the shortestSide is largest than 720p
|
|
bool get isLargeTablet => (mediaQueryShortestSide >= 720);
|
|
|
|
/// True if the current device is Tablet
|
|
bool get isTablet => isSmallTablet || isLargeTablet;
|
|
}
|