mirror of
https://github.com/foss42/apidash.git
synced 2025-12-02 02:39:19 +08:00
Responsiveness added to ToolCalling code
This commit is contained in:
@@ -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,26 +145,65 @@ class _GenerateToolDialogState extends ConsumerState<GenerateToolDialog> {
|
||||
|
||||
@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(),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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: [
|
||||
|
||||
@@ -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,
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user