fix: review changes

This commit is contained in:
DenserMeerkat
2024-06-03 23:52:45 +05:30
parent 437346440d
commit e1e93e985c
17 changed files with 39 additions and 40 deletions

View File

@ -0,0 +1,7 @@
import 'package:apidash/consts.dart';
import 'package:flutter/material.dart';
extension MediaQueryExtension on BuildContext {
bool get isMobile =>
kIsMobile && MediaQuery.of(this).size.width < kMinWindowSize.width;
}

View File

@ -1 +1,2 @@
export 'context_extensions.dart';
export 'string_extensions.dart'; export 'string_extensions.dart';

View File

@ -2,7 +2,7 @@ import 'package:flutter/widgets.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:inner_drawer/inner_drawer.dart'; import 'package:inner_drawer/inner_drawer.dart';
final mobileDrawerKeyProvider = Provider<GlobalKey<InnerDrawerState>>( final mobileDrawerKeyProvider = StateProvider<GlobalKey<InnerDrawerState>>(
(ref) => GlobalKey<InnerDrawerState>()); (ref) => GlobalKey<InnerDrawerState>());
final navRailIndexStateProvider = StateProvider<int>((ref) => 0); final navRailIndexStateProvider = StateProvider<int>((ref) => 0);
final selectedIdEditStateProvider = StateProvider<String?>((ref) => null); final selectedIdEditStateProvider = StateProvider<String?>((ref) => null);

View File

@ -4,6 +4,7 @@ import 'package:apidash/providers/providers.dart';
import 'package:apidash/widgets/widgets.dart'; import 'package:apidash/widgets/widgets.dart';
import 'package:apidash/models/models.dart'; import 'package:apidash/models/models.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class CollectionPane extends ConsumerWidget { class CollectionPane extends ConsumerWidget {
const CollectionPane({ const CollectionPane({
@ -142,8 +143,6 @@ class _RequestListState extends ConsumerState<RequestList> {
final alwaysShowCollectionPaneScrollbar = ref.watch(settingsProvider final alwaysShowCollectionPaneScrollbar = ref.watch(settingsProvider
.select((value) => value.alwaysShowCollectionPaneScrollbar)); .select((value) => value.alwaysShowCollectionPaneScrollbar));
final filterQuery = ref.watch(searchQueryProvider).trim(); final filterQuery = ref.watch(searchQueryProvider).trim();
final isMobile =
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return Scrollbar( return Scrollbar(
controller: controller, controller: controller,
@ -151,7 +150,7 @@ class _RequestListState extends ConsumerState<RequestList> {
radius: const Radius.circular(12), radius: const Radius.circular(12),
child: filterQuery.isEmpty child: filterQuery.isEmpty
? ReorderableListView.builder( ? ReorderableListView.builder(
padding: isMobile padding: context.isMobile
? EdgeInsets.only( ? EdgeInsets.only(
bottom: MediaQuery.paddingOf(context).bottom, bottom: MediaQuery.paddingOf(context).bottom,
right: 8, right: 8,

View File

@ -1,19 +1,18 @@
import 'package:apidash/screens/home_page/editor_pane/details_card/request_pane/request_pane.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:apidash/providers/providers.dart'; import 'package:apidash/providers/providers.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'details_card/details_card.dart'; import 'details_card/details_card.dart';
import 'url_card.dart'; import 'url_card.dart';
import 'package:apidash/screens/home_page/editor_pane/details_card/request_pane/request_pane.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class RequestEditor extends StatelessWidget { class RequestEditor extends StatelessWidget {
const RequestEditor({super.key}); const RequestEditor({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isMobile = return context.isMobile
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return isMobile
? const Padding( ? const Padding(
padding: kPb10, padding: kPb10,
child: Column( child: Column(

View File

@ -3,14 +3,13 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:apidash/providers/providers.dart'; import 'package:apidash/providers/providers.dart';
import 'package:apidash/widgets/widgets.dart'; import 'package:apidash/widgets/widgets.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class EditorPaneRequestURLCard extends StatelessWidget { class EditorPaneRequestURLCard extends StatelessWidget {
const EditorPaneRequestURLCard({super.key}); const EditorPaneRequestURLCard({super.key});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isMobile =
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return Card( return Card(
elevation: 0, elevation: 0,
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
@ -22,9 +21,9 @@ class EditorPaneRequestURLCard extends StatelessWidget {
child: Padding( child: Padding(
padding: EdgeInsets.symmetric( padding: EdgeInsets.symmetric(
vertical: 5, vertical: 5,
horizontal: !isMobile ? 20 : 6, horizontal: !context.isMobile ? 20 : 6,
), ),
child: isMobile child: context.isMobile
? const Row( ? const Row(
children: [ children: [
DropdownButtonHTTPMethod(), DropdownButtonHTTPMethod(),

View File

@ -6,9 +6,9 @@ import 'package:inner_drawer/inner_drawer.dart';
import 'package:flex_color_scheme/flex_color_scheme.dart'; import 'package:flex_color_scheme/flex_color_scheme.dart';
import '../../providers/providers.dart'; import '../../providers/providers.dart';
import 'navbar.dart'; import 'navbar.dart';
import 'left_drawer.dart'; import 'widgets/left_drawer.dart';
import 'requests_page/requests_page.dart'; import 'requests_page.dart';
import 'requests_page/response_drawer.dart'; import 'response_drawer.dart';
import '../home_page/collection_pane.dart'; import '../home_page/collection_pane.dart';
class MobileDashboard extends ConsumerStatefulWidget { class MobileDashboard extends ConsumerStatefulWidget {

View File

@ -1,5 +1,5 @@
import 'package:apidash/providers/ui_providers.dart'; import 'package:apidash/providers/ui_providers.dart';
import 'package:apidash/screens/mobile/page_base.dart'; import 'package:apidash/screens/mobile/widgets/page_base.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import '../settings_page.dart'; import '../settings_page.dart';

View File

@ -5,11 +5,11 @@ import 'package:apidash/providers/providers.dart';
import 'package:apidash/utils/http_utils.dart'; import 'package:apidash/utils/http_utils.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/widgets/widgets.dart'; import 'package:apidash/widgets/widgets.dart';
import '../../home_page/editor_pane/editor_request.dart'; import '../home_page/editor_pane/editor_request.dart';
import '../../home_page/editor_pane/editor_pane.dart'; import '../home_page/editor_pane/editor_pane.dart';
import '../../home_page/editor_pane/url_card.dart'; import '../home_page/editor_pane/url_card.dart';
import '../../home_page/editor_pane/details_card/code_pane.dart'; import '../home_page/editor_pane/details_card/code_pane.dart';
import '../page_base.dart'; import 'widgets/page_base.dart';
class RequestsPage extends StatelessWidget { class RequestsPage extends StatelessWidget {
final GlobalKey<InnerDrawerState> innerDrawerKey; final GlobalKey<InnerDrawerState> innerDrawerKey;
@ -64,8 +64,7 @@ class RequestTitle extends ConsumerWidget {
Widget build(BuildContext context, WidgetRef ref) { Widget build(BuildContext context, WidgetRef ref) {
final id = ref.watch(selectedIdStateProvider); final id = ref.watch(selectedIdStateProvider);
final name = getRequestTitleFromUrl( final name = getRequestTitleFromUrl(
ref.watch(selectedRequestModelProvider.select((value) => value?.name)), ref.watch(selectedRequestModelProvider.select((value) => value?.name)));
capitalize: true);
return ClipRRect( return ClipRRect(
borderRadius: BorderRadius.circular(8), borderRadius: BorderRadius.circular(8),
child: Material( child: Material(

View File

@ -1,5 +1,5 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import '../../home_page/editor_pane/details_card/response_pane.dart'; import '../home_page/editor_pane/details_card/response_pane.dart';
class ResponseDrawer extends StatelessWidget { class ResponseDrawer extends StatelessWidget {
const ResponseDrawer({super.key}); const ResponseDrawer({super.key});

View File

@ -4,6 +4,7 @@ import '../providers/providers.dart';
import '../widgets/widgets.dart'; import '../widgets/widgets.dart';
import '../common/utils.dart'; import '../common/utils.dart';
import '../consts.dart'; import '../consts.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class SettingsPage extends ConsumerWidget { class SettingsPage extends ConsumerWidget {
const SettingsPage({super.key}); const SettingsPage({super.key});
@ -13,12 +14,10 @@ class SettingsPage extends ConsumerWidget {
final settings = ref.watch(settingsProvider); final settings = ref.watch(settingsProvider);
final clearingData = ref.watch(clearDataStateProvider); final clearingData = ref.watch(clearDataStateProvider);
var sm = ScaffoldMessenger.of(context); var sm = ScaffoldMessenger.of(context);
final isMobile =
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
!isMobile !context.isMobile
? Padding( ? Padding(
padding: kPh20t40, padding: kPh20t40,
child: kIsDesktop child: kIsDesktop

View File

@ -7,14 +7,14 @@ import '../models/models.dart';
import 'convert_utils.dart' show rowsToMap; import 'convert_utils.dart' show rowsToMap;
import '../consts.dart'; import '../consts.dart';
String getRequestTitleFromUrl(String? url, {bool capitalize = false}) { String getRequestTitleFromUrl(String? url) {
if (url == null || url.trim() == "") { if (url == null || url.trim() == "") {
return !capitalize ? "untitled" : "Untitled"; return "untitled";
} }
if (url.contains("://")) { if (url.contains("://")) {
String rem = url.split("://")[1]; String rem = url.split("://")[1];
if (rem.trim() == "") { if (rem.trim() == "") {
return !capitalize ? "untitled" : "Untitled"; return "untitled";
} }
return rem; return rem;
} }

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:apidash/utils/utils.dart'; import 'package:apidash/utils/utils.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class DropdownButtonHttpMethod extends StatelessWidget { class DropdownButtonHttpMethod extends StatelessWidget {
const DropdownButtonHttpMethod({ const DropdownButtonHttpMethod({
@ -15,8 +16,6 @@ class DropdownButtonHttpMethod extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final surfaceColor = Theme.of(context).colorScheme.surface; final surfaceColor = Theme.of(context).colorScheme.surface;
final isMobile =
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return DropdownButton<HTTPVerb>( return DropdownButton<HTTPVerb>(
focusColor: surfaceColor, focusColor: surfaceColor,
value: method, value: method,
@ -31,11 +30,10 @@ class DropdownButtonHttpMethod extends StatelessWidget {
return DropdownMenuItem<HTTPVerb>( return DropdownMenuItem<HTTPVerb>(
value: value, value: value,
child: Padding( child: Padding(
padding: EdgeInsets.only(left: isMobile ? 8 : 16), padding: EdgeInsets.only(left: context.isMobile ? 8 : 16),
child: Text( child: Text(
value.name.toUpperCase(), value.name.toUpperCase(),
style: kCodeStyle.copyWith( style: kCodeStyle.copyWith(
fontSize: isMobile ? 13 : null,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: getHTTPMethodColor( color: getHTTPMethodColor(
value, value,

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'tabs.dart'; import 'tabs.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class RequestPane extends StatefulWidget { class RequestPane extends StatefulWidget {
const RequestPane({ const RequestPane({
@ -45,11 +46,9 @@ class _RequestPaneState extends State<RequestPane>
if (widget.tabIndex != null) { if (widget.tabIndex != null) {
_controller.index = widget.tabIndex!; _controller.index = widget.tabIndex!;
} }
final isMobile =
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return Column( return Column(
children: [ children: [
isMobile context.isMobile
? const SizedBox.shrink() ? const SizedBox.shrink()
: Padding( : Padding(
padding: kP8, padding: kP8,

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:apidash/consts.dart'; import 'package:apidash/consts.dart';
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
class TabLabel extends StatelessWidget { class TabLabel extends StatelessWidget {
const TabLabel({ const TabLabel({
@ -12,10 +13,8 @@ class TabLabel extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final isMobile =
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
return SizedBox( return SizedBox(
height: isMobile ? kMobileTabHeight : kTabHeight, height: context.isMobile ? kMobileTabHeight : kTabHeight,
child: Stack( child: Stack(
children: [ children: [
Center( Center(