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 09325495..75ec9dd8 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 @@ -98,6 +98,7 @@ class _GenerateToolDialogState extends ConsumerState { try { setState(() { generatedToolCode = null; + index = 1; }); final res = await generateAPIToolUsingRequestData( ref: ref, @@ -108,6 +109,7 @@ class _GenerateToolDialogState extends ConsumerState { if (res == null) { setState(() { generatedToolCode = ''; + index = 0; }); ScaffoldMessenger.of(context).showSnackBar(SnackBar( content: Text( @@ -120,8 +122,12 @@ class _GenerateToolDialogState extends ConsumerState { } setState(() { generatedToolCode = res; + index = 1; }); } catch (e) { + setState(() { + index = 0; + }); String errMsg = 'Unexpected Error Occured'; if (e.toString().contains('NO_DEFAULT_LLM')) { errMsg = "Please Select Default AI Model in Settings"; @@ -139,26 +145,65 @@ class _GenerateToolDialogState extends ConsumerState { @override Widget build(BuildContext context) { - return Container( - height: 600, - width: MediaQuery.of(context).size.width * 0.8, - child: Row( - children: [ - Expanded(child: ToolRequirementSelectorPage( - onGenerateCallback: (agent, lang) { - setState(() { - selectedLanguage = lang; - selectedAgent = agent; - }); - generateAPITool(); - }, - )), - GeneratedToolCodeCopyPage( - toolCode: generatedToolCode, - language: selectedLanguage.trim(), + return LayoutBuilder(builder: (context, constraints) { + final dialogWidth = constraints.maxWidth; + final isExpandedWindow = dialogWidth > WindowWidth.expanded.value; + final isLargeWindow = dialogWidth > WindowWidth.large.value; + final isExtraLargeWindow = dialogWidth > WindowWidth.large.value; + + if (isExtraLargeWindow || isLargeWindow || isExpandedWindow) { + return Container( + height: 600, + width: MediaQuery.of(context).size.width * 0.8, + child: Row( + children: [ + Flexible( + flex: 2, + child: ToolRequirementSelectorPage( + onGenerateCallback: (agent, lang) { + setState(() { + selectedLanguage = lang; + selectedAgent = agent; + }); + generateAPITool(); + }, + )), + Expanded( + flex: 3, + child: GeneratedToolCodeCopyPage( + toolCode: generatedToolCode, + language: selectedLanguage.trim(), + ), + ), + ], ), - ], - ), - ); + ); + } else { + return Container( + height: 600, + // width: MediaQuery.of(context).size.width * 0.8, + child: IndexedStack( + index: index, + children: [ + Center( + child: ToolRequirementSelectorPage( + onGenerateCallback: (agent, lang) { + setState(() { + selectedLanguage = lang; + selectedAgent = agent; + }); + generateAPITool(); + }, + ), + ), + GeneratedToolCodeCopyPage( + toolCode: generatedToolCode, + language: selectedLanguage.trim(), + ), + ], + ), + ); + } + }); } } diff --git a/lib/screens/common_widgets/agentic_ui_features/tool_generation/generated_tool_codecopy.dart b/lib/screens/common_widgets/agentic_ui_features/tool_generation/generated_tool_codecopy.dart index 33ef04c8..bf3bf34a 100644 --- a/lib/screens/common_widgets/agentic_ui_features/tool_generation/generated_tool_codecopy.dart +++ b/lib/screens/common_widgets/agentic_ui_features/tool_generation/generated_tool_codecopy.dart @@ -38,7 +38,6 @@ class GeneratedToolCodeCopyPage extends StatelessWidget { return Container( color: const Color.fromARGB(26, 123, 123, 123), padding: EdgeInsets.all(20), - width: MediaQuery.of(context).size.width * 0.50, child: Column( crossAxisAlignment: CrossAxisAlignment.end, children: [ diff --git a/lib/screens/common_widgets/agentic_ui_features/tool_generation/tool_requirements_selector.dart b/lib/screens/common_widgets/agentic_ui_features/tool_generation/tool_requirements_selector.dart index c69884d2..68556b06 100644 --- a/lib/screens/common_widgets/agentic_ui_features/tool_generation/tool_requirements_selector.dart +++ b/lib/screens/common_widgets/agentic_ui_features/tool_generation/tool_requirements_selector.dart @@ -39,11 +39,12 @@ class _ToolRequirementSelectorPageState final lightMode = Theme.of(context).brightness == Brightness.light; return Container( - width: MediaQuery.of(context).size.width * 0.4, // Large dialog + constraints: BoxConstraints.expand(), padding: EdgeInsets.all(30), child: Column( mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, children: [ Text( "Generate API Tool", @@ -124,7 +125,11 @@ class _ToolRequirementSelectorPageState isOutlined: true, ), kVSpacer20, - Row( + Wrap( + runSpacing: 10, + alignment: WrapAlignment.center, + runAlignment: WrapAlignment.center, + // mainAxisAlignment: MainAxisAlignment.center, children: [ FilledButton.tonalIcon( style: FilledButton.styleFrom( @@ -161,34 +166,37 @@ class DefaultLLModelSelectorWidget extends ConsumerWidget { final settings = ref.watch(settingsProvider); return Opacity( opacity: 0.8, - child: Row( - children: [ - Padding( - padding: EdgeInsets.only(left: 3), - child: Text( - "with", - style: TextStyle( - color: Theme.of(context).brightness == Brightness.light - ? Colors.black54 - : Colors.white60, - fontSize: 15), + child: Container( + width: 200, + child: Row( + children: [ + Padding( + padding: EdgeInsets.only(left: 3), + child: Text( + "with", + style: TextStyle( + color: Theme.of(context).brightness == Brightness.light + ? Colors.black54 + : Colors.white60, + fontSize: 15), + ), ), - ), - SizedBox(width: 5), - AIModelSelectorButton( - aiRequestModel: - AIRequestModel.fromJson(settings.defaultAIModel ?? {}), - onModelUpdated: (d) { - ref.read(settingsProvider.notifier).update( - defaultAIModel: d.copyWith( - modelConfigs: [], - stream: null, - systemPrompt: '', - userPrompt: '').toJson()); - }, - ), - kVSpacer5, - ], + SizedBox(width: 5), + AIModelSelectorButton( + aiRequestModel: + AIRequestModel.fromJson(settings.defaultAIModel ?? {}), + onModelUpdated: (d) { + ref.read(settingsProvider.notifier).update( + defaultAIModel: d.copyWith( + modelConfigs: [], + stream: null, + systemPrompt: '', + userPrompt: '').toJson()); + }, + ), + kVSpacer5, + ], + ), ), ); }