lab 5 final done

This commit is contained in:
Arkadiy Radaev 2024-12-12 13:37:32 +04:00
parent 0ca1277fb3
commit 65f3b68ff5
3 changed files with 22 additions and 17 deletions

View File

@ -19,11 +19,15 @@ class CarRepository extends ApiInterface {
Future<List<CarData>?> loadData({String? q, OnErrorCallback? onError, int limit = 20}) async { Future<List<CarData>?> loadData({String? q, OnErrorCallback? onError, int limit = 20}) async {
try { try {
const String url = '$_baseUrl/GetModelsForMakeYear/make/honda/modelyear/1990?format=json'; const String url = '$_baseUrl/GetModelsForMakeYear/make/honda/modelyear/1990?format=json';
const String searchurl = '$_baseUrl/GetModelsForMakeYear/make/[name_count]/modelyear/1990?format=json';
final String finalUrl = q != null ? searchurl.replaceFirst('[name_count]', q) : url;
final Response<dynamic> response = await _dio.get<Map<dynamic, dynamic>>(finalUrl);
final Response<dynamic> response = await _dio.get<Map<dynamic, dynamic>>(url);
print('Response data: ${response.data}'); print('Response data: ${response.data}');
final CarDto dto = CarDto.fromJson(response.data as Map<String, dynamic>); final CarDto dto = CarDto.fromJson(response.data as Map<String, dynamic>);
final List<CarData>? data = dto.results?.map((e) => e.toDomain()).toList(); final List<CarData>? data = dto.results?.map((e) => e.toDomain()).toList();
// Ограничиваем количество возвращаемых записей до 'limit' // Ограничиваем количество возвращаемых записей до 'limit'
if (data != null && data.length > limit) { if (data != null && data.length > limit) {
return data.sublist(0, limit); return data.sublist(0, limit);

View File

@ -52,9 +52,9 @@ class _CarState extends State<_Car> {
borderRadius: BorderRadius.circular(20), borderRadius: BorderRadius.circular(20),
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Colors.grey.withOpacity(.5), color: Colors.deepPurple.withOpacity(.4),
spreadRadius: 4, spreadRadius: 4,
offset: const Offset(0, 5), offset: const Offset(0, 0),
blurRadius: 8, blurRadius: 8,
), ),
], ],
@ -83,11 +83,11 @@ class _CarState extends State<_Car> {
children: [ children: [
Text( Text(
widget.text, widget.text,
style: Theme.of(context).textTheme.headlineLarge, style: const TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
), ),
Text( Text(
widget.descriptionCar, widget.descriptionCar,
style: Theme.of(context).textTheme.bodyLarge, style: const TextStyle(fontSize: 18, fontWeight: FontWeight.normal),
) )
], ],
), ),

View File

@ -49,16 +49,17 @@ class _BodyState extends State<Body> {
padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top), padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top),
child: Column( child: Column(
children: [ children: [
// Padding( Padding(
// padding: const EdgeInsets.all(12), padding: const EdgeInsets.all(12),
// child: CupertinoSearchTextField( child: CupertinoSearchTextField(
// //controller: searchController, controller: searchController,
// //onChanged: (search) { onChanged: (search) {
// // setState(() { setState(() {
// // data = repo.loadData(q: search); data = repo.loadData(q: search);
// // } });
// ), },
// ), ),
),
Expanded( Expanded(
child: Center( child: Center(
child: FutureBuilder<List<CarData>?>( child: FutureBuilder<List<CarData>?>(
@ -98,10 +99,10 @@ class _BodyState extends State<Body> {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
ScaffoldMessenger.of(context).showSnackBar(SnackBar( ScaffoldMessenger.of(context).showSnackBar(SnackBar(
content: Text( content: Text(
'Lada $title ${isLiked ? 'Respect! 🤙' : 'disRespect 👎'}', 'Car $title ${isLiked ? 'Respect! 🤙' : 'disRespect 👎'}',
style: Theme.of(context).textTheme.bodyLarge, style: Theme.of(context).textTheme.bodyLarge,
), ),
backgroundColor: Colors.orangeAccent, backgroundColor: Colors.deepPurple,
duration: const Duration(seconds: 1), duration: const Duration(seconds: 1),
)); ));
}); });