mirror of
https://github.com/foss42/apidash.git
synced 2025-12-01 18:28:25 +08:00
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.
42 lines
1.2 KiB
Dart
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());
|
|
},
|
|
);
|
|
}
|
|
}
|