diff --git a/lib/bloc/state.dart b/lib/bloc/state.dart index 96b3544..99216f3 100644 --- a/lib/bloc/state.dart +++ b/lib/bloc/state.dart @@ -1,11 +1,11 @@ import 'package:equatable/equatable.dart'; import 'package:flutter/material.dart'; -import '../models/character.dart'; // Добавим импорт для Character +import '../models/character.dart'; enum HomeStatus { initial, loading, loaded, error } class HomeState extends Equatable { final HomeStatus status; - final List characters; // Теперь используем DTO + final List characters; final String errorMessage; const HomeState({ diff --git a/lib/main.dart b/lib/main.dart index e628094..6b9b480 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -70,7 +70,7 @@ class MyHomePage extends StatelessWidget { return ListView.builder( itemCount: characters.length, itemBuilder: (context, index) { - final characterDTO = characters[index]; // Убедитесь, что это CharacterDTO + final characterDTO = characters[index]; return ListTile( leading: SizedBox( width: 40, diff --git a/lib/models/character.dart b/lib/models/character.dart index 10de82f..d8ef447 100644 --- a/lib/models/character.dart +++ b/lib/models/character.dart @@ -112,9 +112,9 @@ class CharacterDTO { factory CharacterDTO.fromJson(Map json) { return CharacterDTO( name: json['name'], - characterType: json['type'], // 'type' - это то, что мы ожидаем от API + characterType: json['type'], backstory: json['backstory'], - imageUrl: json['image_url'], // Используем корректное имя поля для URL + imageUrl: json['image_url'], ); } diff --git a/lib/pages/character_detail_page.dart b/lib/pages/character_detail_page.dart index cf019eb..e130299 100644 --- a/lib/pages/character_detail_page.dart +++ b/lib/pages/character_detail_page.dart @@ -1,5 +1,5 @@ import 'package:flutter/material.dart'; -import '../models/character.dart'; // Убедитесь, что путь правильный +import '../models/character.dart'; class CharacterDetailPage extends StatelessWidget { final CharacterDTO characterDTO; diff --git a/lib/utils/character_service.dart b/lib/utils/character_service.dart index 4d87801..73827e0 100644 --- a/lib/utils/character_service.dart +++ b/lib/utils/character_service.dart @@ -2,7 +2,7 @@ import 'dart:convert'; import 'package:http/http.dart' as http; import '../models/character.dart'; -const String baseUrl = 'http://192.168.1.83:5000'; // IP-адрес вместо localhost +const String baseUrl = 'http://192.168.1.83:5000'; class CharacterService { // Метод теперь возвращает список CharacterDTO diff --git a/pubspec.lock b/pubspec.lock index 61a4149..dc5654e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -73,6 +73,22 @@ packages: url: "https://pub.dev" source: hosted version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" flutter: dependency: "direct main" description: flutter @@ -99,6 +115,11 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" http: dependency: "direct main" description: @@ -187,6 +208,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.9.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" provider: dependency: transitive description: @@ -195,6 +256,62 @@ packages: url: "https://pub.dev" source: hosted version: "6.1.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "95f9997ca1fb9799d494d0cb2a780fd7be075818d59f00c43832ed112b158a82" + url: "https://pub.dev" + source: hosted + version: "2.3.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "7f172d1b06de5da47b6264c2692ee2ead20bbbc246690427cdb4fc301cd0c549" + url: "https://pub.dev" + source: hosted + version: "2.3.4" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" sky_engine: dependency: transitive description: flutter @@ -280,6 +397,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.1.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" sdks: dart: ">=3.5.2 <4.0.0" - flutter: ">=3.18.0-18.0.pre.54" + flutter: ">=3.24.0" diff --git a/pubspec.yaml b/pubspec.yaml index fa42868..b45cd60 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -38,6 +38,7 @@ dependencies: # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^1.0.8 + shared_preferences: ^2.3.3 dev_dependencies: flutter_test: