Files
apidash/lib/screens/common_widgets/ai/ai_model_selector.dart
Ankit Mahato 7b7daa7dac Add AI request model support and improve type handling
Refactored collection state management to handle API type changes and AI request models. Updated widgets and tests to support nullable HTTP methods and AI request models, and improved response body rendering for AI responses.
2025-08-28 23:34:28 +05:30

42 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:apidash_core/apidash_core.dart';
import 'package:apidash/providers/providers.dart';
import 'ai_model_selector_button.dart';
class AIModelSelector extends ConsumerWidget {
final AIRequestModel? readOnlyModel;
const AIModelSelector({
super.key,
this.readOnlyModel,
});
@override
Widget build(BuildContext context, WidgetRef ref) {
AIRequestModel? aiRequestModel;
if (readOnlyModel == null) {
ref.watch(selectedIdStateProvider);
aiRequestModel = ref.watch(selectedRequestModelProvider
.select((value) => value?.aiRequestModel));
} else {
aiRequestModel = readOnlyModel;
}
if (aiRequestModel == null) {
return Container();
}
return AIModelSelectorButton(
readonly: (readOnlyModel != null),
key: ValueKey(ref.watch(selectedIdStateProvider)),
aiRequestModel: aiRequestModel,
onModelUpdated: (newAIRequestModel) {
ref
.read(collectionStateNotifierProvider.notifier)
.update(aiRequestModel: newAIRequestModel.copyWith());
},
);
}
}