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 {
setState(() {
generatedToolCode = null;
index = 1;
});
final res = await generateAPIToolUsingRequestData(
ref: ref,
@@ -108,6 +109,7 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
if (res == null) {
setState(() {
generatedToolCode = '';
index = 0;
});
ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text(
@@ -120,8 +122,12 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
}
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,12 +145,21 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
@override
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(
height: 600,
width: MediaQuery.of(context).size.width * 0.8,
child: Row(
children: [
Expanded(child: ToolRequirementSelectorPage(
Flexible(
flex: 2,
child: ToolRequirementSelectorPage(
onGenerateCallback: (agent, lang) {
setState(() {
selectedLanguage = lang;
@@ -153,6 +168,34 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
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(),
@@ -161,4 +204,6 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
),
);
}
});
}
}

View File

@@ -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: [

View File

@@ -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,6 +166,8 @@ class DefaultLLModelSelectorWidget extends ConsumerWidget {
final settings = ref.watch(settingsProvider);
return Opacity(
opacity: 0.8,
child: Container(
width: 200,
child: Row(
children: [
Padding(
@@ -190,6 +197,7 @@ class DefaultLLModelSelectorWidget extends ConsumerWidget {
kVSpacer5,
],
),
),
);
}
}