From 5c20dfa055babc5e2873835fc335ffce90178ba8 Mon Sep 17 00:00:00 2001 From: Josh Patra Date: Sun, 26 Feb 2023 12:44:42 -0500 Subject: [PATCH] seller page ui --- lib/auth_gate.dart | 1 - lib/sell.dart | 228 ++++++++++++++++++++++----------------------- pubspec.lock | 12 ++- pubspec.yaml | 4 + 4 files changed, 123 insertions(+), 122 deletions(-) diff --git a/lib/auth_gate.dart b/lib/auth_gate.dart index 3f49fbc..30eef3c 100644 --- a/lib/auth_gate.dart +++ b/lib/auth_gate.dart @@ -1,7 +1,6 @@ import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:flutterfire_ui/auth.dart'; -import 'package:firebase_database/firebase_database.dart'; import 'package:cloud_firestore/cloud_firestore.dart'; import 'home.dart'; diff --git a/lib/sell.dart b/lib/sell.dart index 7e9b5f9..0a37a67 100644 --- a/lib/sell.dart +++ b/lib/sell.dart @@ -1,6 +1,7 @@ // ignore_for_file: prefer_const_constructors import 'package:flutter/material.dart'; +import 'package:currency_text_input_formatter/currency_text_input_formatter.dart'; import 'package:ruswipeshare/meetings.dart'; class SellScreen extends StatefulWidget { @@ -33,136 +34,125 @@ class _SellScreenState extends State { Widget build(BuildContext context) { bool is24HoursFormat = MediaQuery.of(context).alwaysUse24HourFormat; return Scaffold( - body: Column( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: const [ - Icon(Icons.store_mall_directory, color: Colors.red), - Text('Place'), - ], - ), - ConstrainedBox( - constraints: const BoxConstraints.expand(height: 250), - child: ListView.builder( - itemCount: values.length, - itemBuilder: (context, index) => CheckboxListTile( - title: Text(values.keys.elementAt(index)), - value: values.values.elementAt(index), - onChanged: (bool? value) { - setState(() { - values[values.keys.elementAt(index)] = value!; - }); - }, + resizeToAvoidBottomInset: true, + body: Padding( + padding: const EdgeInsets.fromLTRB(0, 20, 0, 0), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Icon(Icons.store_mall_directory, color: Colors.red), + Text('Place'), + ], + ), + ConstrainedBox( + constraints: const BoxConstraints.expand(height: 250), + child: ListView.builder( + itemCount: values.length, + itemBuilder: (context, index) => CheckboxListTile( + title: Text(values.keys.elementAt(index)), + value: values.values.elementAt(index), + onChanged: (bool? value) { + setState(() { + values[values.keys.elementAt(index)] = value!; + }); + }, + ), ), ), - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: const [ - Icon(Icons.access_time, color: Colors.red), - Text('Time'), - ], - ), - SizedBox( - height: 100, - child: Row( + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Icon(Icons.access_time, color: Colors.red), + Text('Time'), + ], + ), + SizedBox( + height: 100, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + Text( + startTime, + style: TextStyle(fontSize: 35), + ), + Text( + "to", + style: TextStyle(fontSize: 20), + ), + Text( + endTime, + style: TextStyle(fontSize: 35), + ), + ], + ), + ), + Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - Text( - startTime, - style: TextStyle(fontSize: 35), + ElevatedButton( + onPressed: () async { + final TimeOfDay? picked = await showTimePicker( + context: context, + initialTime: TimeOfDay.fromDateTime(startTimeTime), + ); + if (picked != null && picked != TimeOfDay.fromDateTime(startTimeTime)) { + setState(() { + startTimeTime = DateTime.fromMicrosecondsSinceEpoch(picked.hour * 60 * 60 * 1000000 + picked.minute * 60 * 1000000, isUtc: true); + startTime = startTimeTime.hour.toString() + ":" + startTimeTime.minute.toString() + ((is24HoursFormat) ? "" : ((startTimeTime.hour > 12) ? "PM" : "AM")); + }); + } + }, + child: const Text('Select Start Time'), ), - Text( - "to", - style: TextStyle(fontSize: 20), - ), - Text( - endTime, - style: TextStyle(fontSize: 35), + ElevatedButton( + onPressed: () async { + final TimeOfDay? picked = await showTimePicker( + context: context, + initialTime: TimeOfDay.fromDateTime(endTimeTime), + ); + if (picked != null && picked != TimeOfDay.fromDateTime(endTimeTime)) { + setState(() { + endTimeTime = DateTime.fromMicrosecondsSinceEpoch(picked.hour * 60 * 60 * 1000000 + picked.minute * 60 * 1000000, isUtc: true); + endTime = endTimeTime.hour.toString() + ":" + endTimeTime.minute.toString() + ((is24HoursFormat) ? "" : ((endTimeTime.hour > 12) ? "PM" : "AM")); + }); + } + }, + child: const Text('Select End Time'), ), ], ), - ), - Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - ElevatedButton( - onPressed: () async { - final TimeOfDay? picked = await showTimePicker( - context: context, - initialTime: TimeOfDay.fromDateTime(startTimeTime), - ); - if (picked != null && - picked != TimeOfDay.fromDateTime(startTimeTime)) { - setState(() { - startTimeTime = DateTime.fromMicrosecondsSinceEpoch( - picked.hour * 60 * 60 * 1000000 + - picked.minute * 60 * 1000000, - isUtc: true); - startTime = startTimeTime.hour.toString() + - ":" + - startTimeTime.minute.toString() + - ((is24HoursFormat) - ? "" - : ((startTimeTime.hour > 12) ? "PM" : "AM")); - }); - } - }, - child: const Text('Select Start Time'), - ), - ElevatedButton( - onPressed: () async { - final TimeOfDay? picked = await showTimePicker( - context: context, - initialTime: TimeOfDay.fromDateTime(endTimeTime), - ); - if (picked != null && - picked != TimeOfDay.fromDateTime(endTimeTime)) { - setState(() { - endTimeTime = DateTime.fromMicrosecondsSinceEpoch( - picked.hour * 60 * 60 * 1000000 + - picked.minute * 60 * 1000000, - isUtc: true); - endTime = endTimeTime.hour.toString() + - ":" + - endTimeTime.minute.toString() + - ((is24HoursFormat) - ? "" - : ((endTimeTime.hour > 12) ? "PM" : "AM")); - }); - } - }, - child: const Text('Select End Time'), - ), - ], - ), - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: const [ - Icon(Icons.attach_money, color: Colors.red), - Text('Cost'), - ], - ), - SizedBox( - width: 150, - child: TextField( - decoration: InputDecoration( - border: OutlineInputBorder(), - hintText: 'Max price', - ), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Icon(Icons.attach_money, color: Colors.red), + Text('Cost'), + ], + ), + SizedBox( + width: 150, + child: TextField( + keyboardType: TextInputType.number, + textAlign: TextAlign.center, + style: TextStyle(color: Colors.white, fontSize: 30), + decoration: InputDecoration( + border: OutlineInputBorder(), + hintText: 'Price', + hintStyle: TextStyle(color: Colors.white24, fontSize: 30), ), ), - ElevatedButton( - onPressed: () {}, - style: ButtonStyle( - backgroundColor: - MaterialStateColor.resolveWith((states) => Colors.blue), ), - child: const Text('Next'), - ), - ], + ElevatedButton( + onPressed: () {}, + style: ButtonStyle( + backgroundColor: MaterialStateColor.resolveWith((states) => Colors.blue), + ), + child: const Text('Submit Sell Request'), + ), + ], + ), ), ); } diff --git a/pubspec.lock b/pubspec.lock index 333457d..6a8d709 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -50,7 +50,7 @@ packages: source: hosted version: "1.1.1" cloud_firestore: - dependency: transitive + dependency: "direct main" description: name: cloud_firestore sha256: "65f148d9f5b4f389320abb45847120cf5e46094c1a8cbc64934ffc1e29688596" @@ -105,6 +105,14 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.5" + currency_text_input_formatter: + dependency: "direct main" + description: + name: currency_text_input_formatter + sha256: "9ff3299b37e73ba76a5a40c645ecd234acba7d54bc8e34f60aeedec2c39b0e6e" + url: "https://pub.dev" + source: hosted + version: "2.1.9" desktop_webview_auth: dependency: transitive description: @@ -446,7 +454,7 @@ packages: source: hosted version: "4.0.2" intl: - dependency: transitive + dependency: "direct overridden" description: name: intl sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" diff --git a/pubspec.yaml b/pubspec.yaml index 3f5e80f..e21b962 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -45,6 +45,8 @@ dependencies: flutter_stripe: any material_dialogs: any google_fonts: ^4.0.3 + cloud_firestore: any + currency_text_input_formatter: ^2.1.9 http: any dev_dependencies: @@ -98,3 +100,5 @@ flutter: # # For details regarding fonts from package dependencies, # see https://flutter.dev/custom-fonts/#from-packages +dependency_overrides: + intl: 0.17.0 \ No newline at end of file