fix: some fixes in example app

This commit is contained in:
2024-06-24 14:08:02 +03:00
parent 7cb92a7b83
commit 946d2ada41
6 changed files with 95 additions and 123 deletions

View File

@@ -166,13 +166,14 @@ class GymHistoryItem {
final String date;
final String sum;
final String photo;
final String timestamp;
GymHistoryItem({
required this.id,
required this.date,
required this.sum,
required this.photo,
});
GymHistoryItem(
{required this.id,
required this.date,
required this.sum,
required this.photo,
required this.timestamp});
factory GymHistoryItem.fromRawJson(String str) =>
GymHistoryItem.fromJson(json.decode(str));
@@ -184,12 +185,14 @@ class GymHistoryItem {
date: json["date"],
sum: json["sum"],
photo: json["photo"],
timestamp: json["timestamp"],
);
Map<String, dynamic> toJson() => {
"id": id,
"date": date,
"sum": sum,
"timestamp": timestamp,
"photo": photo,
};
}
@@ -201,19 +204,20 @@ class GymHistoryItemDetail {
String? payUrl;
final String receiver;
final String email;
final String timestamp;
final String address;
final List<GymHistoryItemDetailProvider> providers;
GymHistoryItemDetail({
required this.id,
required this.date,
required this.sum,
this.payUrl,
required this.providers,
required this.receiver,
required this.email,
required this.address,
});
GymHistoryItemDetail(
{required this.id,
required this.date,
required this.sum,
this.payUrl,
required this.providers,
required this.receiver,
required this.email,
required this.address,
required this.timestamp});
factory GymHistoryItemDetail.fromRawJson(String str) =>
GymHistoryItemDetail.fromJson(json.decode(str));
@@ -222,16 +226,16 @@ class GymHistoryItemDetail {
factory GymHistoryItemDetail.fromJson(Map<String, dynamic> json) =>
GymHistoryItemDetail(
id: json["id"],
date: json["date"],
sum: json["sum"],
receiver: json["receiver"],
email: json["email"],
address: json["address"],
payUrl: json["pay_url"] as String?,
providers: List<GymHistoryItemDetailProvider>.from(json["providers"]
.map((x) => GymHistoryItemDetailProvider.fromJson(x))),
);
id: json["id"],
date: json["date"],
sum: json["sum"],
receiver: json["receiver"],
email: json["email"],
address: json["address"],
payUrl: json["pay_url"] as String?,
providers: List<GymHistoryItemDetailProvider>.from(json["providers"]
.map((x) => GymHistoryItemDetailProvider.fromJson(x))),
timestamp: json["timestamp"]);
Map<String, dynamic> toJson() => {
"id": id,
@@ -241,6 +245,7 @@ class GymHistoryItemDetail {
"providers": List<dynamic>.from(providers.map((x) => x.toJson())),
"receiver": receiver,
"email": email,
"timestamp": timestamp,
"address": address,
};
}

View File

@@ -53,32 +53,49 @@ Widget getDrawer(BuildContext context) => Drawer(
children: [
const DrawerHeader(child: Text('Drawer Header')),
ListTile(
leading: const Icon(Icons.home),
title: const Text('Home'),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => const ExampleMainPage(),
),
),
),
ListTile(
leading: const Icon(Icons.sell),
title: const Text('Club 2'),
onTap: () => Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (_) => GymLinkProvider(),
child: Consumer<GymLinkProvider>(
builder: (_, value, __) => const ExampleClub2Page(),
leading: const Icon(Icons.home),
title: const Text('Home'),
onTap: () {
Future.microtask(() async {
final prefs = await SharedPreferences.getInstance();
prefs.remove('token');
prefs.remove('history');
prefs.remove('cart');
prefs.remove('detail_history');
});
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) => const ExampleMainPage(),
),
),
),
),
),
);
}),
ListTile(
leading: const Icon(Icons.sell),
title: const Text('Club 2'),
onTap: () {
Future.microtask(() async {
final prefs = await SharedPreferences.getInstance();
prefs.remove('token');
prefs.remove('history');
prefs.remove('cart');
prefs.remove('detail_history');
});
Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (context) => ChangeNotifierProvider(
create: (_) => GymLinkProvider(),
child: Consumer<GymLinkProvider>(
builder: (_, value, __) => const ExampleClub2Page(),
),
),
),
);
}),
ListTile(
leading: const Icon(Icons.search),
title: const Text('Example page'),
onTap: () => Navigator.of(context).push(MaterialPageRoute(
onTap: () =>
Navigator.of(context).pushReplacement(MaterialPageRoute(
builder: (context) => const ExampleSecondPage(),
)),
),
@@ -143,26 +160,25 @@ class _ExamplePageState extends State<ExamplePage> {
),
resizeToAvoidBottomInset: false,
drawer: getDrawer(context),
body: const Column(
body: Column(
children: [
Text('test'),
Expanded(
IconButton(
icon: const Icon(Icons.colorize),
onPressed: () {
context.read<GymLinkProvider>().changeTheme(
Random().nextInt(0xffffff + 1),
blackTheme: Random().nextBool());
},
),
const Expanded(
child: MyApp(),
),
SizedBox(
const SizedBox(
height: 20,
),
Text('Bottom text')
const Text('Bottom text')
],
),
floatingActionButton: IconButton(
icon: const Icon(Icons.search),
onPressed: () {
context.read<GymLinkProvider>().changeTheme(
Random().nextInt(0xffffff + 1),
blackTheme: Random().nextBool());
},
),
);
}
}
@@ -231,12 +247,6 @@ class _ExampleClub2PageState extends State<ExampleClub2Page> {
Text('Bottom text')
],
),
floatingActionButton: IconButton(
icon: const Icon(Icons.search),
onPressed: () {
// context.read<GymLinkProvider>().changeTheme(0xFFAABCAB);
},
),
);
}
}

View File

@@ -118,6 +118,7 @@ class _OrderConfirmationPageState extends State<OrderConfirmationPage> {
sum: totalPrice.toString(),
date: '',
providers: providers,
timestamp: DateTime.now().millisecondsSinceEpoch.toString(),
);
await addToHistory(order);
}

View File

@@ -11,8 +11,7 @@ Future<List<GymHistoryItem>> getHistory() async {
for (var historyItem in jsonDecode(historyString) as List<dynamic>) {
history.add(GymHistoryItem.fromJson(historyItem));
}
history.sort((a, b) => b.id.compareTo(a.id));
history = history.reversed.toList();
history.sort((a, b) => b.timestamp.compareTo(a.timestamp));
return history;
}
@@ -50,7 +49,8 @@ Future<void> addToHistory(GymHistoryItemDetail item) async {
"receiver": item.receiver,
"email": item.email,
"address": item.address,
"providers": providers
"providers": providers,
"timestamp": DateTime.now().millisecondsSinceEpoch.toString(),
};
final detailHistoryItem = GymHistoryItemDetail.fromJson(json);
detailHistory.add(detailHistoryItem);
@@ -59,6 +59,7 @@ Future<void> addToHistory(GymHistoryItemDetail item) async {
id: detailHistoryItem.id,
photo: detailHistoryItem.providers[0].items[0].photo,
sum: detailHistoryItem.sum,
timestamp: detailHistoryItem.timestamp,
));
prefs.setString('history', jsonEncode(history));
prefs.setString('detail_history', jsonEncode(detailHistory));