From 1e4f78be72061c53246e54ef1698dfa8ccb88fc9 Mon Sep 17 00:00:00 2001 From: Udhay-Adithya Date: Mon, 8 Sep 2025 15:43:14 +0530 Subject: [PATCH] feat: move generation buttons to dashbot --- .../features/home/view/pages/home_page.dart | 42 ++++++++++++------- .../ai_ui_designer/generate_ui_dialog.dart | 42 ------------------- .../tool_generation/generate_tool_dialog.dart | 25 ----------- lib/widgets/response_body_success.dart | 11 ----- 4 files changed, 28 insertions(+), 92 deletions(-) diff --git a/lib/dashbot/features/home/view/pages/home_page.dart b/lib/dashbot/features/home/view/pages/home_page.dart index bd884aba..a0956c3f 100644 --- a/lib/dashbot/features/home/view/pages/home_page.dart +++ b/lib/dashbot/features/home/view/pages/home_page.dart @@ -93,23 +93,37 @@ class _DashbotHomePageState extends ConsumerState { ); }, ), - ], - ), - if (currentRequest?.httpResponseModel?.statusCode != null && - currentRequest?.httpResponseModel?.statusCode == 200) ...[ - const SizedBox(height: 12), - Row( - children: const [ - Expanded( - child: GenerateToolButton(), + if (currentRequest?.httpResponseModel?.statusCode != null && + currentRequest?.httpResponseModel?.statusCode == 200) ...[ + HomeScreenTaskButton( + label: "🛠️ Generate Tool", + onPressed: () { + GenerateToolDialog.show(context, ref); + }, ), - SizedBox(width: 8), - Expanded( - child: AIGenerateUIButton(), + HomeScreenTaskButton( + label: "📱 Generate UI", + onPressed: () { + final model = ref.watch(selectedRequestModelProvider + .select((value) => value?.httpResponseModel)); + if (model == null) return; + + String data = ""; + if (model.sseOutput != null) { + data = model.sseOutput!.join(''); + } else { + data = model.formattedBody ?? "<>"; + } + + showCustomDialog( + context, + GenerateUIDialog(content: data), + ); + }, ), ], - ), - ], + ], + ), ], ), ); diff --git a/lib/screens/common_widgets/agentic_ui_features/ai_ui_designer/generate_ui_dialog.dart b/lib/screens/common_widgets/agentic_ui_features/ai_ui_designer/generate_ui_dialog.dart index 33967d8f..47f7fd1f 100644 --- a/lib/screens/common_widgets/agentic_ui_features/ai_ui_designer/generate_ui_dialog.dart +++ b/lib/screens/common_widgets/agentic_ui_features/ai_ui_designer/generate_ui_dialog.dart @@ -1,8 +1,5 @@ -import 'package:apidash/consts.dart'; -import 'package:apidash/providers/collection_providers.dart'; import 'package:apidash/services/agentic_services/apidash_agent_calls.dart'; import 'package:apidash/widgets/widget_sending.dart'; -import 'package:apidash_design_system/apidash_design_system.dart'; import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'framework_selector.dart'; @@ -150,42 +147,3 @@ class _GenerateUIDialogState extends ConsumerState { ); } } - -class AIGenerateUIButton extends ConsumerWidget { - const AIGenerateUIButton({super.key}); - - @override - Widget build(BuildContext context, WidgetRef ref) { - return FilledButton.tonalIcon( - style: FilledButton.styleFrom( - padding: kPh12, - minimumSize: const Size(44, 44), - ), - onPressed: () { - final model = ref.watch(selectedRequestModelProvider - .select((value) => value?.httpResponseModel)); - if (model == null) return; - - String data = ""; - if (model.sseOutput != null) { - data = model.sseOutput!.join(''); - } else { - data = model.formattedBody ?? "<>"; - } - - showCustomDialog( - context, - GenerateUIDialog(content: data), - ); - }, - icon: Icon( - Icons.generating_tokens, - ), - label: const SizedBox( - child: Text( - kLabelGenerateUI, - ), - ), - ); - } -} diff --git a/lib/screens/common_widgets/agentic_ui_features/tool_generation/generate_tool_dialog.dart b/lib/screens/common_widgets/agentic_ui_features/tool_generation/generate_tool_dialog.dart index f7f7b510..0cfd2dd4 100644 --- a/lib/screens/common_widgets/agentic_ui_features/tool_generation/generate_tool_dialog.dart +++ b/lib/screens/common_widgets/agentic_ui_features/tool_generation/generate_tool_dialog.dart @@ -9,31 +9,6 @@ import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'generated_tool_codecopy.dart'; import 'tool_requirements_selector.dart'; -class GenerateToolButton extends ConsumerWidget { - const GenerateToolButton({super.key}); - - @override - Widget build(BuildContext context, WidgetRef ref) { - return FilledButton.tonalIcon( - style: FilledButton.styleFrom( - padding: kPh12, - minimumSize: const Size(44, 44), - ), - onPressed: () async { - GenerateToolDialog.show(context, ref); - }, - icon: Icon( - Icons.token_outlined, - ), - label: const SizedBox( - child: Text( - "Generate Tool", - ), - ), - ); - } -} - class GenerateToolDialog extends ConsumerStatefulWidget { final APIDashRequestDescription requestDesc; const GenerateToolDialog({ diff --git a/lib/widgets/response_body_success.dart b/lib/widgets/response_body_success.dart index a120f1e4..8e42be2d 100644 --- a/lib/widgets/response_body_success.dart +++ b/lib/widgets/response_body_success.dart @@ -1,5 +1,3 @@ -import 'package:apidash/screens/common_widgets/agentic_ui_features/ai_ui_designer/generate_ui_dialog.dart'; -import 'package:apidash/screens/common_widgets/agentic_ui_features/tool_generation/generate_tool_dialog.dart'; import 'package:apidash_core/apidash_core.dart'; import 'package:apidash_design_system/apidash_design_system.dart'; import 'package:flutter/foundation.dart'; @@ -65,15 +63,6 @@ class _ResponseBodySuccessState extends State { padding: kP10, child: Column( children: [ - if (!widget.isPartOfHistory) - Row( - mainAxisAlignment: MainAxisAlignment.end, - children: [ - Expanded(child: GenerateToolButton()), - SizedBox(width: 10), - Expanded(child: AIGenerateUIButton()), - ], - ), kVSpacer10, Row( children: [