mirror of
https://github.com/foss42/apidash.git
synced 2025-12-05 20:40:02 +08:00
feat: enhance EditRequestPane with segmented layout for Dashbot window
This commit is contained in:
@@ -1,8 +1,13 @@
|
|||||||
|
import 'package:apidash/dashbot/core/providers/dashbot_window_notifier.dart';
|
||||||
import 'package:apidash_core/apidash_core.dart';
|
import 'package:apidash_core/apidash_core.dart';
|
||||||
import 'package:apidash_design_system/apidash_design_system.dart';
|
import 'package:apidash_design_system/apidash_design_system.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/widgets/widgets.dart';
|
||||||
|
import 'package:apidash/screens/common_widgets/common_widgets.dart';
|
||||||
|
import '../response_pane.dart';
|
||||||
import 'ai_request/request_pane_ai.dart';
|
import 'ai_request/request_pane_ai.dart';
|
||||||
import 'request_pane_graphql.dart';
|
import 'request_pane_graphql.dart';
|
||||||
import 'request_pane_rest.dart';
|
import 'request_pane_rest.dart';
|
||||||
@@ -15,6 +20,46 @@ class EditRequestPane extends ConsumerWidget {
|
|||||||
ref.watch(selectedIdStateProvider);
|
ref.watch(selectedIdStateProvider);
|
||||||
final apiType = ref
|
final apiType = ref
|
||||||
.watch(selectedRequestModelProvider.select((value) => value?.apiType));
|
.watch(selectedRequestModelProvider.select((value) => value?.apiType));
|
||||||
|
final isPopped =
|
||||||
|
ref.watch(dashbotWindowNotifierProvider.select((s) => s.isPopped));
|
||||||
|
|
||||||
|
// When Dashbot window is popped, compact segmented layout like History page should be shown
|
||||||
|
if (isPopped == false && apiType == APIType.rest) {
|
||||||
|
return DefaultTabController(
|
||||||
|
length: 3,
|
||||||
|
child: Builder(
|
||||||
|
builder: (context) {
|
||||||
|
final controller = DefaultTabController.of(context);
|
||||||
|
return Column(
|
||||||
|
children: [
|
||||||
|
kVSpacer10,
|
||||||
|
SegmentedTabbar(
|
||||||
|
controller: controller,
|
||||||
|
tabs: const [
|
||||||
|
Tab(text: kLabelRequest),
|
||||||
|
Tab(text: kLabelResponse),
|
||||||
|
Tab(text: kLabelCode),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
kVSpacer10,
|
||||||
|
Expanded(
|
||||||
|
child: TabBarView(
|
||||||
|
controller: controller,
|
||||||
|
children: const [
|
||||||
|
EditRestRequestPane(),
|
||||||
|
ResponsePane(),
|
||||||
|
CodePane(),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
kVSpacer8,
|
||||||
|
],
|
||||||
|
);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
return switch (apiType) {
|
return switch (apiType) {
|
||||||
APIType.rest => const EditRestRequestPane(),
|
APIType.rest => const EditRestRequestPane(),
|
||||||
APIType.graphql => const EditGraphQLRequestPane(),
|
APIType.graphql => const EditGraphQLRequestPane(),
|
||||||
|
|||||||
Reference in New Issue
Block a user