Responsiveness added to ToolCalling code

This commit is contained in:
Manas Hejmadi
2025-08-31 01:01:28 +05:30
parent 6ba0b9181c
commit cc91cdcf12
3 changed files with 103 additions and 51 deletions

View File

@@ -98,6 +98,7 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
try { try {
setState(() { setState(() {
generatedToolCode = null; generatedToolCode = null;
index = 1;
}); });
final res = await generateAPIToolUsingRequestData( final res = await generateAPIToolUsingRequestData(
ref: ref, ref: ref,
@@ -108,6 +109,7 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
if (res == null) { if (res == null) {
setState(() { setState(() {
generatedToolCode = ''; generatedToolCode = '';
index = 0;
}); });
ScaffoldMessenger.of(context).showSnackBar(SnackBar( ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text( content: Text(
@@ -120,8 +122,12 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
} }
setState(() { setState(() {
generatedToolCode = res; generatedToolCode = res;
index = 1;
}); });
} catch (e) { } catch (e) {
setState(() {
index = 0;
});
String errMsg = 'Unexpected Error Occured'; String errMsg = 'Unexpected Error Occured';
if (e.toString().contains('NO_DEFAULT_LLM')) { if (e.toString().contains('NO_DEFAULT_LLM')) {
errMsg = "Please Select Default AI Model in Settings"; errMsg = "Please Select Default AI Model in Settings";
@@ -139,12 +145,21 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
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( return Container(
height: 600, height: 600,
width: MediaQuery.of(context).size.width * 0.8, width: MediaQuery.of(context).size.width * 0.8,
child: Row( child: Row(
children: [ children: [
Expanded(child: ToolRequirementSelectorPage( Flexible(
flex: 2,
child: ToolRequirementSelectorPage(
onGenerateCallback: (agent, lang) { onGenerateCallback: (agent, lang) {
setState(() { setState(() {
selectedLanguage = lang; selectedLanguage = lang;
@@ -153,6 +168,34 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
generateAPITool(); 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( GeneratedToolCodeCopyPage(
toolCode: generatedToolCode, toolCode: generatedToolCode,
language: selectedLanguage.trim(), language: selectedLanguage.trim(),
@@ -161,4 +204,6 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
), ),
); );
} }
});
}
} }

View File

@@ -38,7 +38,6 @@ class GeneratedToolCodeCopyPage extends StatelessWidget {
return Container( return Container(
color: const Color.fromARGB(26, 123, 123, 123), color: const Color.fromARGB(26, 123, 123, 123),
padding: EdgeInsets.all(20), padding: EdgeInsets.all(20),
width: MediaQuery.of(context).size.width * 0.50,
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
children: [ children: [

View File

@@ -39,11 +39,12 @@ class _ToolRequirementSelectorPageState
final lightMode = Theme.of(context).brightness == Brightness.light; final lightMode = Theme.of(context).brightness == Brightness.light;
return Container( return Container(
width: MediaQuery.of(context).size.width * 0.4, // Large dialog constraints: BoxConstraints.expand(),
padding: EdgeInsets.all(30), padding: EdgeInsets.all(30),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
Text( Text(
"Generate API Tool", "Generate API Tool",
@@ -124,7 +125,11 @@ class _ToolRequirementSelectorPageState
isOutlined: true, isOutlined: true,
), ),
kVSpacer20, kVSpacer20,
Row( Wrap(
runSpacing: 10,
alignment: WrapAlignment.center,
runAlignment: WrapAlignment.center,
// mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
FilledButton.tonalIcon( FilledButton.tonalIcon(
style: FilledButton.styleFrom( style: FilledButton.styleFrom(
@@ -161,6 +166,8 @@ class DefaultLLModelSelectorWidget extends ConsumerWidget {
final settings = ref.watch(settingsProvider); final settings = ref.watch(settingsProvider);
return Opacity( return Opacity(
opacity: 0.8, opacity: 0.8,
child: Container(
width: 200,
child: Row( child: Row(
children: [ children: [
Padding( Padding(
@@ -190,6 +197,7 @@ class DefaultLLModelSelectorWidget extends ConsumerWidget {
kVSpacer5, kVSpacer5,
], ],
), ),
),
); );
} }
} }