From 993c8fe488d8831ba87d4a894a49399413bc746d Mon Sep 17 00:00:00 2001 From: Niklas Date: Sun, 18 Aug 2024 20:19:08 +0200 Subject: [PATCH] Unscrollable --- assets/images/FooterFooter.png | Bin 0 -> 6727 bytes lib/main.dart | 1 + lib/screens/account_page.dart | 54 +++++- lib/screens/avatar.dart | 99 +++++++++++ lib/screens/home.dart | 160 ++++++++++++----- lib/screens/subheader_Datepicker.dart | 80 +++++++++ macos/Podfile.lock | 14 +- pubspec.lock | 236 ++++++++++++++------------ pubspec.yaml | 2 +- 9 files changed, 490 insertions(+), 156 deletions(-) create mode 100644 assets/images/FooterFooter.png create mode 100644 lib/screens/avatar.dart create mode 100644 lib/screens/subheader_Datepicker.dart diff --git a/assets/images/FooterFooter.png b/assets/images/FooterFooter.png new file mode 100644 index 0000000000000000000000000000000000000000..96e6dd6a583ea20c648982dd2bb039eebd2cad20 GIT binary patch literal 6727 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 main() async { diff --git a/lib/screens/account_page.dart b/lib/screens/account_page.dart index b8d8b4e..192d117 100644 --- a/lib/screens/account_page.dart +++ b/lib/screens/account_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:learn_project/screens/avatar.dart'; import 'package:learn_project/main.dart'; class AccountPage extends StatefulWidget { @@ -13,6 +14,7 @@ class _AccountPageState extends State { final _usernameController = TextEditingController(); final _websiteController = TextEditingController(); + String? _avatarUrl; var _loading = true; /// Called once a user id is received within `onAuthenticated()` @@ -22,11 +24,15 @@ class _AccountPageState extends State { }); try { - final userId = supabase.auth.currentUser!.id; - final data = - await supabase.from('profiles').select().eq('id', userId).single(); + final userId = supabase.auth.currentSession!.user.id; + final data = await supabase + .from('profiles') + .select() + .eq('id', userId) + .single(); _usernameController.text = (data['username'] ?? '') as String; _websiteController.text = (data['website'] ?? '') as String; + _avatarUrl = (data['avatar_url'] ?? '') as String; } on PostgrestException catch (error) { if (mounted) { SnackBar( @@ -118,6 +124,43 @@ class _AccountPageState extends State { } } + /// Called when image has been uploaded to Supabase storage from within Avatar widget + Future _onUpload(String imageUrl) async { + try { + final userId = supabase.auth.currentUser!.id; + await supabase.from('profiles').upsert({ + 'id': userId, + 'avatar_url': imageUrl, + }); + if (mounted) { + const SnackBar( + content: Text('Updated your profile image!'), + ); + } + } on PostgrestException catch (error) { + if (mounted) { + SnackBar( + content: Text(error.message), + backgroundColor: Theme.of(context).colorScheme.error, + ); + } + } catch (error) { + if (mounted) { + SnackBar( + content: const Text('Unexpected error occurred'), + backgroundColor: Theme.of(context).colorScheme.error, + ); + } + } + if (!mounted) { + return; + } + + setState(() { + _avatarUrl = imageUrl; + }); + } + @override void initState() { super.initState(); @@ -140,6 +183,11 @@ class _AccountPageState extends State { : ListView( padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 12), children: [ + Avatar( + imageUrl: _avatarUrl, + onUpload: _onUpload, + ), + const SizedBox(height: 18), TextFormField( controller: _usernameController, decoration: const InputDecoration(labelText: 'User Name'), diff --git a/lib/screens/avatar.dart b/lib/screens/avatar.dart new file mode 100644 index 0000000..9c2d6b0 --- /dev/null +++ b/lib/screens/avatar.dart @@ -0,0 +1,99 @@ +import 'package:flutter/material.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:learn_project/main.dart'; + +class Avatar extends StatefulWidget { + const Avatar({ + super.key, + required this.imageUrl, + required this.onUpload, + }); + + final String? imageUrl; + final void Function(String) onUpload; + + @override + State createState() => _AvatarState(); +} + +class _AvatarState extends State { + bool _isLoading = false; + + @override + Widget build(BuildContext context) { + return Column( + children: [ + if (widget.imageUrl == null || widget.imageUrl!.isEmpty) + Container( + width: 150, + height: 150, + color: Colors.grey, + child: const Center( + child: Text('No Image'), + ), + ) + else + Image.network( + widget.imageUrl!, + width: 150, + height: 150, + fit: BoxFit.cover, + ), + ElevatedButton( + onPressed: _isLoading ? null : _upload, + child: const Text('Upload'), + ), + ], + ); + } + + Future _upload() async { + final picker = ImagePicker(); + final imageFile = await picker.pickImage( + source: ImageSource.gallery, + maxWidth: 300, + maxHeight: 300, + ); + if (imageFile == null) { + return; + } + setState(() => _isLoading = true); + + try { + final bytes = await imageFile.readAsBytes(); + final fileExt = imageFile.path.split('.').last; + final fileName = '${DateTime.now().toIso8601String()}.$fileExt'; + final filePath = fileName; + await supabase.storage.from('avatars').uploadBinary( + filePath, + bytes, + fileOptions: FileOptions(contentType: imageFile.mimeType), + ); + final imageUrlResponse = await supabase.storage + .from('avatars') + .createSignedUrl(filePath, 60 * 60 * 24 * 365 * 10); + widget.onUpload(imageUrlResponse); + } on StorageException catch (error) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(error.message), + backgroundColor: Theme.of(context).colorScheme.error, + ), + ); + } + } catch (error) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Unexpected error occurred'), + backgroundColor: Theme.of(context).colorScheme.error, + ), + ); + } + } + + setState(() => _isLoading = false); + } +} \ No newline at end of file diff --git a/lib/screens/home.dart b/lib/screens/home.dart index b7fad00..384f897 100644 --- a/lib/screens/home.dart +++ b/lib/screens/home.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:learn_project/screens/details_db.dart'; import 'package:learn_project/utils/data.dart'; +import 'package:learn_project/screens/subheader_Datepicker.dart'; class HomePage extends StatelessWidget { const HomePage({super.key}); @@ -13,7 +14,7 @@ class HomePage extends StatelessWidget { //Header Container Container( padding: const EdgeInsets.fromLTRB(5, 10, 5, 5), - height: 96, + height: 80, color: Colors.white, alignment: Alignment.bottomLeft, child: Column( @@ -84,52 +85,114 @@ class HomePage extends StatelessWidget { ), ]), const Divider( - height: 10, + height: 1, thickness: 1, indent: 0, endIndent: 0, color: Colors.black, ), + ], ), ), //Body Container Expanded( - /* child: SingleChildScrollView( - padding: const EdgeInsets.symmetric(horizontal: 30.0), - child: Column( - children: [ - Container( - color: Colors.red, - height: 200.0, - alignment: Alignment.center, - child: Text("Content 1"), - ), - Container( - color: Colors.green, - height: 300.0, - alignment: Alignment.center, - child: Text("Content 1"), - ), - //TextField nearly at bottom - TextField( - decoration: InputDecoration(hintText: "Enter Text Here"), - ), - ], - ), - ), */ - child: /* Column( - children: [ - SizedBox( - height: 50, //height of button - //width of button - child: IconButton( - icon: Image.asset('assets/images/filter_wann.png'), - onPressed: () {}, - ), - ), */ - GridView.builder( + child: SingleChildScrollView( + child: Column( + children: [ + Container( + padding: const EdgeInsets.all(0), + height: 35, + child: ButtonSection(), + ), + GridView.builder( + shrinkWrap: true, // Damit der GridView korrekt in die Column passt + //physics: NeverScrollableScrollPhysics(), // Deaktiviert das Scrolling des GridView + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 2, // Anzahl der Spalten im Grid + ), + itemCount: Data.recipes.length, // Anzahl der Elemente im Grid + itemBuilder: (BuildContext context, int index) { + return Padding( + padding: const EdgeInsets.all(6.0), + child: InkWell( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => DetailsPage( + //recipe: Data.recipes[index], + ))); + }, + child: Card( + color: Color.fromARGB(255, 249, 171, 21), + //color: Color.fromARGB(255, 253, 73, 73), //FD4949 //Nachtleben + //color: Color.fromARGB(255, 80, 168, 250), //50A8FA//Kunst + //color: Color.fromARGB(255, 80, 240, 250), //50F0FA //Sport + //color: Color.fromARGB(255, 130, 73, 253), //8249FD //Gesundheit + //color: Color.fromARGB(255, 253, 73, 73), //FD4949//Essen + //color: Color.fromARGB(255, 255, 0, 199), //FF00C7//Soziales + //color: Color.fromARGB(255, 66, 255, 0), //42FF00//Familie + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(6.0), + ), + child: Container( + width: MediaQuery.of(context).size.width / 2, + height: 50, + child: Column( + children: [ + Expanded( + child: ClipRRect( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(6.0), + topRight: Radius.circular(6.0), + ), + child: Hero( + tag: Data.recipes[index].id, + child: FadeInImage( + image: AssetImage( + Data.recipes[index].imageUrl), + fit: BoxFit.cover, + placeholder: AssetImage( + 'assets/images/loading.gif'), + ), + ), + ), + ), + Text( + Data.recipes[index].title, + style: TextStyle( + color: Colors.white, + fontSize: 20, + fontWeight: FontWeight.bold), + ), + Padding( + padding: const EdgeInsets.all(2.0), + ), + ], + ), + ), + ), + ), + ); + }, + ), + ], + ), + ), +), + + /* Expanded( + child: Column( + children:[ + Container( + padding: const EdgeInsets.fromLTRB(0, 0, 0, 0), + height: 35, + child: ButtonSection(), + ), + Expanded( + child:GridView.builder( shrinkWrap: false, itemCount: Data.recipes.length, gridDelegate: @@ -199,19 +262,32 @@ class HomePage extends StatelessWidget { ), ); }), - // ], - // ), - ), + ),Image.asset( + 'assets/images/FooterFooter.png', // Pfad zum Bild + height: 127, // Höhe des Bildes + width: 390, // Breite des Bildes + ),], + + ), + + ), */ + + //Footer Container //Here you will get unexpected behaviour when keyboard pops-up. //So its better to use `bottomNavigationBar` to avoid this. - Container( + /* Container( padding: const EdgeInsets.all(8.0), color: Colors.white, alignment: Alignment.center, - child: Text("Footer"), - ), + child: + Image.asset( + 'assets/images/FooterFooter.png', // Pfad zum Bild + height: 127, // Höhe des Bildes + width: 390, // Breite des Bildes + ), + ), */ ], ), ); diff --git a/lib/screens/subheader_Datepicker.dart b/lib/screens/subheader_Datepicker.dart new file mode 100644 index 0000000..3b97b38 --- /dev/null +++ b/lib/screens/subheader_Datepicker.dart @@ -0,0 +1,80 @@ +import 'package:flutter/material.dart'; + +class ButtonSection extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + // Button "Heute" (filled style) + ElevatedButton( + onPressed: () {}, + child: Text('Heute'), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.black, // Button color + foregroundColor: Colors.white, // Text color + minimumSize: Size(85, 39), // Breite und Höhe + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + ), + ), + // Button "Morgen" (outlined style) + OutlinedButton( + onPressed: () {}, + child: Text('Morgen'), + style: OutlinedButton.styleFrom( + foregroundColor: Colors.black, // Text color + side: BorderSide(color: Colors.black), // Border color + minimumSize: Size(90, 39), // Breite und Höhe + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + ), + ), + // Button "Wochenende" (outlined style) + OutlinedButton( + onPressed: () {}, + child: Text('Wochenende'), + style: OutlinedButton.styleFrom( + foregroundColor: Colors.black, // Text color + side: BorderSide(color: Colors.black), // Border color + minimumSize: Size(100, 39), // Breite und Höhe + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10.0), + ), + ), + ), + // Button with calendar icon + IconButton( + onPressed: () {}, + icon: Icon(Icons.calendar_today, color: Colors.black), + ), + ], + ); + } +} + +/* child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 30.0), + child: Column( + children: [ + Container( + color: Colors.red, + height: 200.0, + alignment: Alignment.center, + child: Text("Content 1"), + ), + Container( + color: Colors.green, + height: 300.0, + alignment: Alignment.center, + child: Text("Content 1"), + ), + //TextField nearly at bottom + TextField( + decoration: InputDecoration(hintText: "Enter Text Here"), + ), + ], + ), + ), */ \ No newline at end of file diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 1ecc3ee..0ab9fbf 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,6 +1,8 @@ PODS: - app_links (1.0.0): - FlutterMacOS + - file_selector_macos (0.0.1): + - FlutterMacOS - FlutterMacOS (1.0.0) - path_provider_foundation (0.0.1): - Flutter @@ -13,6 +15,7 @@ PODS: DEPENDENCIES: - app_links (from `Flutter/ephemeral/.symlinks/plugins/app_links/macos`) + - file_selector_macos (from `Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos`) - FlutterMacOS (from `Flutter/ephemeral`) - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`) - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`) @@ -21,6 +24,8 @@ DEPENDENCIES: EXTERNAL SOURCES: app_links: :path: Flutter/ephemeral/.symlinks/plugins/app_links/macos + file_selector_macos: + :path: Flutter/ephemeral/.symlinks/plugins/file_selector_macos/macos FlutterMacOS: :path: Flutter/ephemeral path_provider_foundation: @@ -32,11 +37,12 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: app_links: 10e0a0ab602ffaf34d142cd4862f29d34b303b2a + file_selector_macos: 54fdab7caa3ac3fc43c9fac4d7d8d231277f8cf2 FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24 - path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c - shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 - url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 + shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78 + url_launcher_macos: 5f437abeda8c85500ceb03f5c1938a8c5a705399 PODFILE CHECKSUM: 236401fc2c932af29a9fcf0e97baeeb2d750d367 -COCOAPODS: 1.14.3 +COCOAPODS: 1.15.2 diff --git a/pubspec.lock b/pubspec.lock index 0303ce0..16fea70 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,10 +5,34 @@ packages: dependency: transitive description: name: app_links - sha256: "0fd41f0501f131d931251e0942ac63d6216096a0052aeca037915c2c1deeb121" + sha256: "4acba851087b25136e8f6e32a53bd4536eb3bec69947ddb66e7b9a5792ceb0c7" url: "https://pub.dev" source: hosted - version: "5.0.0" + version: "6.2.0" + app_links_linux: + dependency: transitive + description: + name: app_links_linux + sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81 + url: "https://pub.dev" + source: hosted + version: "1.0.3" + app_links_platform_interface: + dependency: transitive + description: + name: app_links_platform_interface + sha256: "05f5379577c513b534a29ddea68176a4d4802c46180ee8e2e966257158772a3f" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + app_links_web: + dependency: transitive + description: + name: app_links_web + sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555 + url: "https://pub.dev" + source: hosted + version: "1.0.4" async: dependency: transitive description: @@ -53,18 +77,18 @@ packages: dependency: transitive description: name: cross_file - sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" url: "https://pub.dev" source: hosted - version: "0.3.4+1" + version: "0.3.4+2" crypto: dependency: transitive description: name: crypto - sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" cupertino_icons: dependency: "direct main" description: @@ -85,10 +109,10 @@ packages: dependency: transitive description: name: ffi - sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" + sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.1.3" file: dependency: transitive description: @@ -125,10 +149,10 @@ packages: dependency: transitive description: name: file_selector_windows - sha256: d3547240c20cabf205c7c7f01a50ecdbc413755814d6677f3cb366f04abcead0 + sha256: "2ad726953f6e8affbc4df8dc78b77c3b4a060967a291e528ef72ae846c60fb69" url: "https://pub.dev" source: hosted - version: "0.9.3+1" + version: "0.9.3+2" flutter: dependency: "direct main" description: flutter @@ -146,10 +170,10 @@ packages: dependency: transitive description: name: flutter_plugin_android_lifecycle - sha256: "8cf40eebf5dec866a6d1956ad7b4f7016e6c0cc69847ab946833b7d43743809f" + sha256: "9d98bd47ef9d34e803d438f17fd32b116d31009f534a6fa5ce3a1167f189a6de" url: "https://pub.dev" source: hosted - version: "2.0.19" + version: "2.0.21" flutter_test: dependency: "direct dev" description: flutter @@ -164,18 +188,18 @@ packages: dependency: transitive description: name: functions_client - sha256: a70b0dd9a1c35d05d1141557f7e49ffe4de5f450ffde31755a9eeeadca03b8ee + sha256: e63f49cd3b41727f47b3bde284a11a4ac62839e0604f64077d4257487510e484 url: "https://pub.dev" source: hosted - version: "2.1.0" + version: "2.3.2" gotrue: dependency: transitive description: name: gotrue - sha256: c9c984f088320a5c5e87c7a34571e3de3982cca4cbd8b978e59d36baf748edfb + sha256: "8703db795511f69194fe77125a0c838bbb6befc2f95717b6e40331784a8bdecb" url: "https://pub.dev" source: hosted - version: "2.6.1" + version: "2.8.4" gtk: dependency: transitive description: @@ -188,10 +212,10 @@ packages: dependency: transitive description: name: http - sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" + sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.2" http_parser: dependency: transitive description: @@ -204,34 +228,34 @@ packages: dependency: "direct main" description: name: image_picker - sha256: "33974eca2e87e8b4e3727f1b94fa3abcb25afe80b6bc2c4d449a0e150aedf720" + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.1.2" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "0f57fee1e8bfadf8cc41818bbcd7f72e53bb768a54d9496355d5e8a5681a19f1" + sha256: "8c5abf0dcc24fe6e8e0b4a5c0b51a5cf30cefdf6407a3213dae61edc75a70f56" url: "https://pub.dev" source: hosted - version: "0.8.12+1" + version: "0.8.12+12" image_picker_for_web: dependency: transitive description: name: image_picker_for_web - sha256: "5d6eb13048cd47b60dbf1a5495424dea226c5faf3950e20bf8120a58efb5b5f3" + sha256: "65d94623e15372c5c51bebbcb820848d7bcb323836e12dfdba60b5d3a8b39e50" url: "https://pub.dev" source: hosted - version: "3.0.4" + version: "3.0.5" image_picker_ios: dependency: transitive description: name: image_picker_ios - sha256: "4824d8c7f6f89121ef0122ff79bb00b009607faecc8545b86bca9ab5ce1e95bf" + sha256: "6703696ad49f5c3c8356d576d7ace84d1faf459afb07accbb0fae780753ff447" url: "https://pub.dev" source: hosted - version: "0.8.11+2" + version: "0.8.12" image_picker_linux: dependency: transitive description: @@ -284,26 +308,26 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" url: "https://pub.dev" source: hosted - version: "10.0.0" + version: "10.0.4" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.3" leak_tracker_testing: dependency: transitive description: name: leak_tracker_testing - sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "3.0.1" lints: dependency: transitive description: @@ -332,10 +356,10 @@ packages: dependency: transitive description: name: meta - sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" url: "https://pub.dev" source: hosted - version: "1.11.0" + version: "1.12.0" mime: dependency: transitive description: @@ -356,26 +380,26 @@ packages: dependency: transitive description: name: path_provider - sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 + sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378 url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d + sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.2.10" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" + sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16 url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.0" path_provider_linux: dependency: transitive description: @@ -396,18 +420,18 @@ packages: dependency: transitive description: name: path_provider_windows - sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.3.0" platform: dependency: transitive description: name: platform - sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" + sha256: "9b71283fc13df574056616011fb138fd3b793ea47cc509c189a6c3fa5f8a1a65" url: "https://pub.dev" source: hosted - version: "3.1.4" + version: "3.1.5" plugin_platform_interface: dependency: transitive description: @@ -420,18 +444,18 @@ packages: dependency: transitive description: name: postgrest - sha256: "9a3b590cf123f8d323b6a918702e037f037027d12a01902f9dc6ee38fdc05d6c" + sha256: c4197238601c7c3103b03a4bb77f2050b17d0064bf8b968309421abdebbb7f0e url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.4" realtime_client: dependency: transitive description: name: realtime_client - sha256: "492a1ab568b3812cb345aad8dd09b3936877edba81a6ab6f5fdf365c155797e1" + sha256: d897a65ee3b1b5ddc1cf606f0b83792262d38fd5679c2df7e38da29c977513da url: "https://pub.dev" source: hosted - version: "2.0.4" + version: "2.2.1" retry: dependency: transitive description: @@ -444,66 +468,66 @@ packages: dependency: transitive description: name: rxdart - sha256: "0c7c0cedd93788d996e33041ffecda924cc54389199cde4e6a34b440f50044cb" + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" url: "https://pub.dev" source: hosted - version: "0.27.7" + version: "0.28.0" shared_preferences: dependency: transitive description: name: shared_preferences - sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 + sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051" url: "https://pub.dev" source: hosted - version: "2.2.3" + version: "2.3.2" shared_preferences_android: dependency: transitive description: name: shared_preferences_android - sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2" + sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974 url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.3.1" shared_preferences_foundation: dependency: transitive description: name: shared_preferences_foundation - sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c" + sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f url: "https://pub.dev" source: hosted - version: "2.3.5" + version: "2.5.2" shared_preferences_linux: dependency: transitive description: name: shared_preferences_linux - sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shared_preferences_platform_interface: dependency: transitive description: name: shared_preferences_platform_interface - sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" shared_preferences_web: dependency: transitive description: name: shared_preferences_web - sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" + sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.2" shared_preferences_windows: dependency: transitive description: name: shared_preferences_windows - sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.1" sky_engine: dependency: transitive description: flutter @@ -529,10 +553,10 @@ packages: dependency: transitive description: name: storage_client - sha256: bf5589d5de61a2451edb1b8960a0e673d4bb5c42ecc4dddf7c051a93789ced34 + sha256: "28c147c805304dbc2b762becd1fc26ee0cb621ace3732b9ae61ef979aab8b367" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.0.3" stream_channel: dependency: transitive description: @@ -553,18 +577,18 @@ packages: dependency: transitive description: name: supabase - sha256: ef407187b18c440f4a5c3f3cf30eb5cc1daadd4ff5616febf445a37e0e0ed34e + sha256: "4ed1cf3298f39865c05b2d8557f92eb131a9b9af70e32e218672a0afce01a6bc" url: "https://pub.dev" source: hosted - version: "2.1.2" + version: "2.3.0" supabase_flutter: dependency: "direct main" description: name: supabase_flutter - sha256: "6a77bd6ef6dc451bb2561de0334d68d620b84d7df1de1448dd7962ed5d1a79ea" + sha256: ff6ba3048fd47d831fdc0027d3efb99346d99b95becfcb406562454bd9b229c5 url: "https://pub.dev" source: hosted - version: "2.5.2" + version: "2.6.0" term_glyph: dependency: transitive description: @@ -577,18 +601,18 @@ packages: dependency: transitive description: name: test_api - sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" url: "https://pub.dev" source: hosted - version: "0.6.1" + version: "0.7.0" timeago: dependency: "direct main" description: name: timeago - sha256: d3204eb4c788214883380253da7f23485320a58c11d145babc82ad16bf4e7764 + sha256: "054cedf68706bb142839ba0ae6b135f6b68039f0b8301cbe8784ae653d5ff8de" url: "https://pub.dev" source: hosted - version: "3.6.1" + version: "3.7.0" typed_data: dependency: transitive description: @@ -601,42 +625,42 @@ packages: dependency: transitive description: name: url_launcher - sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e" + sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" url: "https://pub.dev" source: hosted - version: "6.2.6" + version: "6.3.0" url_launcher_android: dependency: transitive description: name: url_launcher_android - sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775" + sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 url: "https://pub.dev" source: hosted - version: "6.3.1" + version: "6.3.9" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5" + sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e url: "https://pub.dev" source: hosted - version: "6.2.5" + version: "6.3.1" url_launcher_linux: dependency: transitive description: name: url_launcher_linux - sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 + sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.2.0" url_launcher_macos: dependency: transitive description: name: url_launcher_macos - sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234 + sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.2.0" url_launcher_platform_interface: dependency: transitive description: @@ -649,18 +673,18 @@ packages: dependency: transitive description: name: url_launcher_web - sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" + sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.3" url_launcher_windows: dependency: transitive description: name: url_launcher_windows - sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 + sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" vector_math: dependency: transitive description: @@ -673,34 +697,34 @@ packages: dependency: transitive description: name: vm_service - sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" url: "https://pub.dev" source: hosted - version: "13.0.0" + version: "14.2.1" web: dependency: transitive description: name: web - sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "1.0.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42" + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" url: "https://pub.dev" source: hosted - version: "2.4.5" - win32: - dependency: transitive - description: - name: win32 - sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb" - url: "https://pub.dev" - source: hosted - version: "5.5.0" + version: "3.0.1" xdg_directories: dependency: transitive description: @@ -713,10 +737,10 @@ packages: dependency: transitive description: name: yet_another_json_isolate - sha256: e727502a2640d65b4b8a8a6cb48af9dd0cbe644ba4b3ee667c7f4afa0c1d6069 + sha256: "47ed3900e6b0e4dfe378811a4402e85b7fc126a7daa94f840fef65ea9c8e46f4" url: "https://pub.dev" source: hosted - version: "2.0.0" + version: "2.0.2" sdks: - dart: ">=3.3.0 <4.0.0" - flutter: ">=3.19.0" + dart: ">=3.4.0 <4.0.0" + flutter: ">=3.22.0" diff --git a/pubspec.yaml b/pubspec.yaml index 93fbc08..45a16d7 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -37,7 +37,7 @@ dependencies: cupertino_icons: ^1.0.2 supabase_flutter: ^2.5.2 timeago: ^3.1.0 - image_picker: ^1.0.5 + image_picker: ^1.1.2 dev_dependencies: flutter_test: