mirror of
https://github.com/foss42/apidash.git
synced 2025-12-05 04:18:56 +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_design_system/apidash_design_system.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 '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 'request_pane_graphql.dart';
|
||||
import 'request_pane_rest.dart';
|
||||
@@ -15,6 +20,46 @@ class EditRequestPane extends ConsumerWidget {
|
||||
ref.watch(selectedIdStateProvider);
|
||||
final apiType = ref
|
||||
.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) {
|
||||
APIType.rest => const EditRestRequestPane(),
|
||||
APIType.graphql => const EditGraphQLRequestPane(),
|
||||
|
||||
Reference in New Issue
Block a user