mirror of
https://github.com/foss42/apidash.git
synced 2025-06-28 20:13:46 +08:00
fix: review changes
This commit is contained in:
7
lib/extensions/context_extensions.dart
Normal file
7
lib/extensions/context_extensions.dart
Normal 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;
|
||||
}
|
@ -1 +1,2 @@
|
||||
export 'context_extensions.dart';
|
||||
export 'string_extensions.dart';
|
||||
|
@ -2,7 +2,7 @@ import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:inner_drawer/inner_drawer.dart';
|
||||
|
||||
final mobileDrawerKeyProvider = Provider<GlobalKey<InnerDrawerState>>(
|
||||
final mobileDrawerKeyProvider = StateProvider<GlobalKey<InnerDrawerState>>(
|
||||
(ref) => GlobalKey<InnerDrawerState>());
|
||||
final navRailIndexStateProvider = StateProvider<int>((ref) => 0);
|
||||
final selectedIdEditStateProvider = StateProvider<String?>((ref) => null);
|
||||
|
@ -4,6 +4,7 @@ import 'package:apidash/providers/providers.dart';
|
||||
import 'package:apidash/widgets/widgets.dart';
|
||||
import 'package:apidash/models/models.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
|
||||
|
||||
class CollectionPane extends ConsumerWidget {
|
||||
const CollectionPane({
|
||||
@ -142,8 +143,6 @@ class _RequestListState extends ConsumerState<RequestList> {
|
||||
final alwaysShowCollectionPaneScrollbar = ref.watch(settingsProvider
|
||||
.select((value) => value.alwaysShowCollectionPaneScrollbar));
|
||||
final filterQuery = ref.watch(searchQueryProvider).trim();
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
|
||||
return Scrollbar(
|
||||
controller: controller,
|
||||
@ -151,7 +150,7 @@ class _RequestListState extends ConsumerState<RequestList> {
|
||||
radius: const Radius.circular(12),
|
||||
child: filterQuery.isEmpty
|
||||
? ReorderableListView.builder(
|
||||
padding: isMobile
|
||||
padding: context.isMobile
|
||||
? EdgeInsets.only(
|
||||
bottom: MediaQuery.paddingOf(context).bottom,
|
||||
right: 8,
|
||||
|
@ -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_riverpod/flutter_riverpod.dart';
|
||||
import 'package:apidash/providers/providers.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'details_card/details_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 {
|
||||
const RequestEditor({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
return isMobile
|
||||
return context.isMobile
|
||||
? const Padding(
|
||||
padding: kPb10,
|
||||
child: Column(
|
||||
|
@ -3,14 +3,13 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
|
||||
import 'package:apidash/providers/providers.dart';
|
||||
import 'package:apidash/widgets/widgets.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
|
||||
|
||||
class EditorPaneRequestURLCard extends StatelessWidget {
|
||||
const EditorPaneRequestURLCard({super.key});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
return Card(
|
||||
elevation: 0,
|
||||
shape: RoundedRectangleBorder(
|
||||
@ -22,9 +21,9 @@ class EditorPaneRequestURLCard extends StatelessWidget {
|
||||
child: Padding(
|
||||
padding: EdgeInsets.symmetric(
|
||||
vertical: 5,
|
||||
horizontal: !isMobile ? 20 : 6,
|
||||
horizontal: !context.isMobile ? 20 : 6,
|
||||
),
|
||||
child: isMobile
|
||||
child: context.isMobile
|
||||
? const Row(
|
||||
children: [
|
||||
DropdownButtonHTTPMethod(),
|
||||
|
@ -6,9 +6,9 @@ import 'package:inner_drawer/inner_drawer.dart';
|
||||
import 'package:flex_color_scheme/flex_color_scheme.dart';
|
||||
import '../../providers/providers.dart';
|
||||
import 'navbar.dart';
|
||||
import 'left_drawer.dart';
|
||||
import 'requests_page/requests_page.dart';
|
||||
import 'requests_page/response_drawer.dart';
|
||||
import 'widgets/left_drawer.dart';
|
||||
import 'requests_page.dart';
|
||||
import 'response_drawer.dart';
|
||||
import '../home_page/collection_pane.dart';
|
||||
|
||||
class MobileDashboard extends ConsumerStatefulWidget {
|
||||
|
@ -1,5 +1,5 @@
|
||||
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_riverpod/flutter_riverpod.dart';
|
||||
import '../settings_page.dart';
|
||||
|
@ -5,11 +5,11 @@ import 'package:apidash/providers/providers.dart';
|
||||
import 'package:apidash/utils/http_utils.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/widgets/widgets.dart';
|
||||
import '../../home_page/editor_pane/editor_request.dart';
|
||||
import '../../home_page/editor_pane/editor_pane.dart';
|
||||
import '../../home_page/editor_pane/url_card.dart';
|
||||
import '../../home_page/editor_pane/details_card/code_pane.dart';
|
||||
import '../page_base.dart';
|
||||
import '../home_page/editor_pane/editor_request.dart';
|
||||
import '../home_page/editor_pane/editor_pane.dart';
|
||||
import '../home_page/editor_pane/url_card.dart';
|
||||
import '../home_page/editor_pane/details_card/code_pane.dart';
|
||||
import 'widgets/page_base.dart';
|
||||
|
||||
class RequestsPage extends StatelessWidget {
|
||||
final GlobalKey<InnerDrawerState> innerDrawerKey;
|
||||
@ -64,8 +64,7 @@ class RequestTitle extends ConsumerWidget {
|
||||
Widget build(BuildContext context, WidgetRef ref) {
|
||||
final id = ref.watch(selectedIdStateProvider);
|
||||
final name = getRequestTitleFromUrl(
|
||||
ref.watch(selectedRequestModelProvider.select((value) => value?.name)),
|
||||
capitalize: true);
|
||||
ref.watch(selectedRequestModelProvider.select((value) => value?.name)));
|
||||
return ClipRRect(
|
||||
borderRadius: BorderRadius.circular(8),
|
||||
child: Material(
|
@ -1,5 +1,5 @@
|
||||
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 {
|
||||
const ResponseDrawer({super.key});
|
@ -4,6 +4,7 @@ import '../providers/providers.dart';
|
||||
import '../widgets/widgets.dart';
|
||||
import '../common/utils.dart';
|
||||
import '../consts.dart';
|
||||
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
|
||||
|
||||
class SettingsPage extends ConsumerWidget {
|
||||
const SettingsPage({super.key});
|
||||
@ -13,12 +14,10 @@ class SettingsPage extends ConsumerWidget {
|
||||
final settings = ref.watch(settingsProvider);
|
||||
final clearingData = ref.watch(clearDataStateProvider);
|
||||
var sm = ScaffoldMessenger.of(context);
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
!isMobile
|
||||
!context.isMobile
|
||||
? Padding(
|
||||
padding: kPh20t40,
|
||||
child: kIsDesktop
|
||||
|
@ -7,14 +7,14 @@ import '../models/models.dart';
|
||||
import 'convert_utils.dart' show rowsToMap;
|
||||
import '../consts.dart';
|
||||
|
||||
String getRequestTitleFromUrl(String? url, {bool capitalize = false}) {
|
||||
String getRequestTitleFromUrl(String? url) {
|
||||
if (url == null || url.trim() == "") {
|
||||
return !capitalize ? "untitled" : "Untitled";
|
||||
return "untitled";
|
||||
}
|
||||
if (url.contains("://")) {
|
||||
String rem = url.split("://")[1];
|
||||
if (rem.trim() == "") {
|
||||
return !capitalize ? "untitled" : "Untitled";
|
||||
return "untitled";
|
||||
}
|
||||
return rem;
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:apidash/utils/utils.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
|
||||
|
||||
class DropdownButtonHttpMethod extends StatelessWidget {
|
||||
const DropdownButtonHttpMethod({
|
||||
@ -15,8 +16,6 @@ class DropdownButtonHttpMethod extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final surfaceColor = Theme.of(context).colorScheme.surface;
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
return DropdownButton<HTTPVerb>(
|
||||
focusColor: surfaceColor,
|
||||
value: method,
|
||||
@ -31,11 +30,10 @@ class DropdownButtonHttpMethod extends StatelessWidget {
|
||||
return DropdownMenuItem<HTTPVerb>(
|
||||
value: value,
|
||||
child: Padding(
|
||||
padding: EdgeInsets.only(left: isMobile ? 8 : 16),
|
||||
padding: EdgeInsets.only(left: context.isMobile ? 8 : 16),
|
||||
child: Text(
|
||||
value.name.toUpperCase(),
|
||||
style: kCodeStyle.copyWith(
|
||||
fontSize: isMobile ? 13 : null,
|
||||
fontWeight: FontWeight.bold,
|
||||
color: getHTTPMethodColor(
|
||||
value,
|
||||
|
@ -1,6 +1,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'tabs.dart';
|
||||
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
|
||||
|
||||
class RequestPane extends StatefulWidget {
|
||||
const RequestPane({
|
||||
@ -45,11 +46,9 @@ class _RequestPaneState extends State<RequestPane>
|
||||
if (widget.tabIndex != null) {
|
||||
_controller.index = widget.tabIndex!;
|
||||
}
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
return Column(
|
||||
children: [
|
||||
isMobile
|
||||
context.isMobile
|
||||
? const SizedBox.shrink()
|
||||
: Padding(
|
||||
padding: kP8,
|
||||
|
@ -1,5 +1,6 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/extensions/extensions.dart' show MediaQueryExtension;
|
||||
|
||||
class TabLabel extends StatelessWidget {
|
||||
const TabLabel({
|
||||
@ -12,10 +13,8 @@ class TabLabel extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final isMobile =
|
||||
kIsMobile && MediaQuery.sizeOf(context).width < kMinWindowSize.width;
|
||||
return SizedBox(
|
||||
height: isMobile ? kMobileTabHeight : kTabHeight,
|
||||
height: context.isMobile ? kMobileTabHeight : kTabHeight,
|
||||
child: Stack(
|
||||
children: [
|
||||
Center(
|
||||
|
Reference in New Issue
Block a user