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

more info on the images

parent 8430accd
......@@ -110,7 +110,7 @@
"category": "course",
"title": "Learn Programming With JavaScript",
"author": "Olga Volkova, Will Alexander",
"publisher": "OpenClassrooms",
"publisher": "OpenClatssrooms",
"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!",
"image": "assets/images/LearnProgrammingWithJS.jpg",
......
......@@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'app_state.dart';
class FavoritePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
......@@ -24,7 +23,7 @@ class FavoritePage extends StatelessWidget {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ImageScreen(imagePath: state.getFav(index)['image']),
builder: (context) => ImageScreen(book: state.getFav(index)),
),
);
},
......@@ -43,16 +42,76 @@ class FavoritePage 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
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(),
body: Center(
child: Image.asset(imagePath),
appBar: AppBar(
title: Text(book['title']),
),
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:
dependency: transitive
description:
name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
sha256: cdd14e3836065a1f6302a236ec8b5f700695c803c57ae11a1c84df31e6bcf831
url: "https://pub.dev"
source: hosted
version: "10.0.4"
version: "10.0.3"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
sha256: "9b2ef90589911d665277464e0482b209d39882dffaaf4ef69a3561a3354b2ebc"
url: "https://pub.dev"
source: hosted
version: "3.0.3"
version: "3.0.2"
leak_tracker_testing:
dependency: transitive
description:
name: leak_tracker_testing
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
sha256: fd3cd66cb2bcd7b50dcd3b413af49d78051f809c8b3f6e047962765c15a0d23d
url: "https://pub.dev"
source: hosted
version: "3.0.1"
version: "3.0.0"
lints:
dependency: transitive
description:
......@@ -127,10 +127,10 @@ packages:
dependency: transitive
description:
name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
url: "https://pub.dev"
source: hosted
version: "1.12.0"
version: "1.11.0"
nested:
dependency: transitive
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