diff --git a/lib/models/diary.dart b/lib/models/diary.dart new file mode 100644 index 0000000..f9b3ed7 --- /dev/null +++ b/lib/models/diary.dart @@ -0,0 +1,10 @@ +import 'package:fooder_web/models/meal.dart'; + + +class Diary { + final List meals; + + const Diary({ + required this.meals, + }); +} diff --git a/lib/models/entry.dart b/lib/models/entry.dart new file mode 100644 index 0000000..b6143a9 --- /dev/null +++ b/lib/models/entry.dart @@ -0,0 +1,16 @@ +class Entry { + final String name; + final double calories; + final double protein; + final double fat; + final double carb; + + + const Entry({ + required this.name, + required this.calories, + required this.protein, + required this.fat, + required this.carb, + }); +} diff --git a/lib/models/meal.dart b/lib/models/meal.dart new file mode 100644 index 0000000..62b9f4a --- /dev/null +++ b/lib/models/meal.dart @@ -0,0 +1,10 @@ +import 'package:fooder_web/models/entry.dart'; + + +class Meal { + final List entries; + + const Meal({ + required this.entries, + }); +} diff --git a/lib/screens/main.dart b/lib/screens/main.dart index 3b261a9..dfa5867 100644 --- a/lib/screens/main.dart +++ b/lib/screens/main.dart @@ -2,6 +2,10 @@ import 'package:flutter/material.dart'; import 'package:fooder_web/screens/based.dart'; import 'package:fooder_web/screens/login.dart'; import 'package:fooder_web/client.dart'; +import 'package:fooder_web/models/meal.dart'; +import 'package:fooder_web/models/entry.dart'; +import 'package:fooder_web/models/diary.dart'; +import 'package:fooder_web/widgets/diary.dart'; class MyApp extends StatelessWidget { const MyApp({super.key}); @@ -49,6 +53,47 @@ class _MyHomePageState extends State { @override Widget build(BuildContext context) { + var testDiary = Diary( + meals: [ + Meal( + entries: [ + Entry( + name: "DUPA", + calories: 123.21, + protein: 20.13, + fat: 99.99, + carb: -15.02, + ), + Entry( + name: "SRAKA", + calories: 123.21, + protein: 20.13, + fat: 99.99, + carb: -15.02, + ), + ] + ), + Meal( + entries: [ + Entry( + name: "MADA", + calories: 123.21, + protein: 20.13, + fat: 99.99, + carb: -15.02, + ), + Entry( + name: "FAKA", + calories: 123.21, + protein: 20.13, + fat: 99.99, + carb: -15.02, + ), + ] + ), + ] + ); + return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, @@ -58,15 +103,7 @@ class _MyHomePageState extends State { child: Container( constraints: const BoxConstraints(maxWidth: 600), padding: const EdgeInsets.all(10), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - FilledButton( - onPressed: _login, - child: const Text('Login'), - ) - ], - ), + child: DiaryWidget(diary: testDiary), ), ), ); diff --git a/lib/widgets/diary.dart b/lib/widgets/diary.dart index e69de29..66d41fb 100644 --- a/lib/widgets/diary.dart +++ b/lib/widgets/diary.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; +import 'package:fooder_web/models/diary.dart'; +import 'package:fooder_web/widgets/meal.dart'; +import 'dart:core'; + + +class DiaryWidget extends StatelessWidget { + final Diary diary; + + const DiaryWidget({super.key, required this.diary}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(8), + child: ListView( + padding: const EdgeInsets.all(8), + children: [ + for (var meal in diary.meals) + MealWidget( + meal: meal, + ), + ], + ), + ); + } +} diff --git a/lib/widgets/entry.dart b/lib/widgets/entry.dart index e69de29..3e195ec 100644 --- a/lib/widgets/entry.dart +++ b/lib/widgets/entry.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; +import 'package:fooder_web/models/entry.dart'; +import 'dart:core'; + + +class EntryWidget extends StatelessWidget { + final Entry entry; + + const EntryWidget({super.key, required this.entry}); + + @override + Widget build(BuildContext context) { + return Container( + padding: const EdgeInsets.all(8), + child: Text(entry.name), + ); + } +} diff --git a/lib/widgets/meal.dart b/lib/widgets/meal.dart index e69de29..dca69fe 100644 --- a/lib/widgets/meal.dart +++ b/lib/widgets/meal.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; +import 'package:fooder_web/models/meal.dart'; +import 'package:fooder_web/widgets/entry.dart'; +import 'dart:core'; + + +class MealWidget extends StatelessWidget { + final Meal meal; + + const MealWidget({super.key, required this.meal}); + + @override + Widget build(BuildContext context) { + return Card( + child: Padding( + padding: const EdgeInsets.only( + top: 36.0, left: 6.0, right: 6.0, bottom: 6.0), + child: ExpansionTile( + title: const Text('SEKS Z KOBIETA'), + children: [ + for (var entry in meal.entries) + EntryWidget( + entry: entry, + ), + ], + ), + ), + ); + } +}