Commit 0fd135d0 authored by Timothé KOBAK's avatar Timothé KOBAK

more info on the images

parent 8430accd
...@@ -110,7 +110,7 @@ ...@@ -110,7 +110,7 @@
"category": "course", "category": "course",
"title": "Learn Programming With JavaScript", "title": "Learn Programming With JavaScript",
"author": "Olga Volkova, Will Alexander", "author": "Olga Volkova, Will Alexander",
"publisher": "OpenClassrooms", "publisher": "OpenClatssrooms",
"completion_time": "15 hours", "completion_time": "15 hours",
"description": "This course is designed to teach you the fundamentals of the JavaScript programming language and to give you lots of practice along the way!", "description": "This course is designed to teach you the fundamentals of the JavaScript programming language and to give you lots of practice along the way!",
"image": "assets/images/LearnProgrammingWithJS.jpg", "image": "assets/images/LearnProgrammingWithJS.jpg",
......
...@@ -2,7 +2,6 @@ import 'package:flutter/material.dart'; ...@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'app_state.dart'; import 'app_state.dart';
class FavoritePage extends StatelessWidget { class FavoritePage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -24,7 +23,7 @@ class FavoritePage extends StatelessWidget { ...@@ -24,7 +23,7 @@ class FavoritePage extends StatelessWidget {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => ImageScreen(imagePath: state.getFav(index)['image']), builder: (context) => ImageScreen(book: state.getFav(index)),
), ),
); );
}, },
...@@ -43,16 +42,76 @@ class FavoritePage extends StatelessWidget { ...@@ -43,16 +42,76 @@ class FavoritePage extends StatelessWidget {
} }
class ImageScreen extends StatelessWidget { class ImageScreen extends StatelessWidget {
final String imagePath; final Map<String, dynamic> book;
const ImageScreen({Key? key, required this.book}) : super(key: key);
const ImageScreen({Key? key, required this.imagePath}) : super(key: key); String checkNull(dynamic value) {
return value != null ? value.toString() : '';
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
appBar: AppBar(), appBar: AppBar(
body: Center( title: Text(book['title']),
child: Image.asset(imagePath), ),
body: SingleChildScrollView(
padding: EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.asset(book['image']),
SizedBox(height: 16.0),
if (book['title'] != null)
Text(
'Title: ${checkNull(book['title'])}',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold, color: Colors.black87),
),
if (book['subtitle'] != null)
Text(
'Subtitle: ${checkNull(book['subtitle'])}',
style: TextStyle(fontSize: 18, color: Colors.black54),
),
SizedBox(height: 8.0),
if (book['author'] != null)
Text(
'Author: ${checkNull(book['author'])}',
style: TextStyle(fontSize: 16, color: Colors.black54),
),
SizedBox(height: 8.0),
if (book['published'] != null)
Text(
'Published: ${checkNull(book['published'])}',
style: TextStyle(fontSize: 16, color: Colors.black54),
),
SizedBox(height: 8.0),
if (book['publisher'] != null)
Text(
'Publisher: ${checkNull(book['publisher'])}',
style: TextStyle(fontSize: 16, color: Colors.black54),
),
SizedBox(height: 8.0),
if (book['pages'] != null)
Text(
'Pages: ${checkNull(book['pages'])}',
style: TextStyle(fontSize: 16, color: Colors.black54),
),
SizedBox(height: 8.0),
if (book['description'] != null)
Text(
'Description: ${checkNull(book['description'])}',
style: TextStyle(fontSize: 16, color: Colors.black54),
),
SizedBox(height: 16.0),
ElevatedButton(
onPressed: () {
//TODO: LOGIC HERE
},
child: Text('Remove from favorites', style: TextStyle(fontSize: 16)),
),
],
),
), ),
); );
} }
......
...@@ -79,26 +79,26 @@ packages: ...@@ -79,26 +79,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" sha256: cdd14e3836065a1f6302a236ec8b5f700695c803c57ae11a1c84df31e6bcf831
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.4" version: "10.0.3"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" sha256: "9b2ef90589911d665277464e0482b209d39882dffaaf4ef69a3561a3354b2ebc"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.3" version: "3.0.2"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_testing name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" sha256: fd3cd66cb2bcd7b50dcd3b413af49d78051f809c8b3f6e047962765c15a0d23d
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.1" version: "3.0.0"
lints: lints:
dependency: transitive dependency: transitive
description: description:
...@@ -127,10 +127,10 @@ packages: ...@@ -127,10 +127,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.11.0"
nested: nested:
dependency: transitive dependency: transitive
description: description:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment