Skip to content

Commit 32e21d1

Browse files
committed
some changes
1 parent 720d7d1 commit 32e21d1

File tree

15 files changed

+777
-319
lines changed

15 files changed

+777
-319
lines changed

lib/src/features/cart/presentation/cart_screen.dart

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ class _CartScreenState extends ConsumerState<CartScreen> {
109109
),
110110
),
111111
body: Padding(
112-
padding: const EdgeInsets.only(left: 10, right: 10, bottom: 100),
112+
padding: const EdgeInsets.only(left: 8, right: 8, bottom: 100),
113113
child: isLoading
114114
? ListView.builder(
115115
shrinkWrap: true,
@@ -251,14 +251,18 @@ class _CartScreenState extends ConsumerState<CartScreen> {
251251
),
252252
);
253253
},
254-
child: Image.asset("assets/icons/remove-icon.png", width: 20.w, height: 20.h,),
254+
child: Image.asset(
255+
"assets/icons/remove-icon.png",
256+
width: 20.w,
257+
height: 20.h,
258+
),
255259
),
256260
],
257261
),
258262
),
259263
SizedBox(height: 5.h),
260264
SizedBox(
261-
width: 188.w,
265+
width: 150.w,
262266
child: Row(
263267
mainAxisAlignment: MainAxisAlignment.spaceBetween,
264268
children: [

lib/src/features/chat/presentation/chat_detail_screen.dart

Lines changed: 63 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -298,20 +298,15 @@
298298
// }
299299
// }
300300

301-
import 'dart:io';
302-
303301
import 'package:cloud_firestore/cloud_firestore.dart';
304302
import 'package:file_picker/file_picker.dart';
305303
import 'package:flutter/material.dart';
306304
import 'package:flutter_chat_types/flutter_chat_types.dart' as types;
307305
import 'package:flutter_chat_ui/flutter_chat_ui.dart';
308306
import 'package:flutter_riverpod/flutter_riverpod.dart';
309307
import 'package:google_fonts/google_fonts.dart';
310-
import 'package:http/http.dart' as http;
311308
import 'package:image_picker/image_picker.dart';
312309
// import 'package:mime/mime.dart';
313-
import 'package:open_filex/open_filex.dart';
314-
import 'package:path_provider/path_provider.dart';
315310
import 'package:petscape/src/features/auth/presentation/auth_controller.dart';
316311
import 'package:uuid/uuid.dart';
317312
import 'package:flutter_screenutil/flutter_screenutil.dart';
@@ -328,7 +323,7 @@ class ChatDetailScreen extends ConsumerStatefulWidget {
328323

329324
class _ChatDetailScreenState extends ConsumerState<ChatDetailScreen> {
330325
final textController = TextEditingController();
331-
List<types.Message> _messages = [];
326+
final List<types.Message> _messages = [];
332327

333328
@override
334329
Widget build(BuildContext context) {
@@ -695,57 +690,57 @@ class _ChatDetailScreenState extends ConsumerState<ChatDetailScreen> {
695690
}
696691
}
697692

698-
void _handleMessageTap(BuildContext _, types.Message message) async {
699-
if (message is types.FileMessage) {
700-
var localPath = message.uri;
701-
702-
if (message.uri.startsWith('http')) {
703-
try {
704-
final index = _messages.indexWhere((element) => element.id == message.id);
705-
final updatedMessage = (_messages[index] as types.FileMessage).copyWith(
706-
// isLoading: true,
707-
);
708-
709-
setState(() {
710-
_messages[index] = updatedMessage;
711-
});
712-
713-
final client = http.Client();
714-
final request = await client.get(Uri.parse(message.uri));
715-
final bytes = request.bodyBytes;
716-
final documentsDir = (await getApplicationDocumentsDirectory()).path;
717-
localPath = '$documentsDir/${message.name}';
718-
719-
if (!File(localPath).existsSync()) {
720-
final file = File(localPath);
721-
await file.writeAsBytes(bytes);
722-
}
723-
} finally {
724-
final index = _messages.indexWhere((element) => element.id == message.id);
725-
final updatedMessage = (_messages[index] as types.FileMessage).copyWith(
726-
// isLoading: null,
727-
);
728-
729-
setState(() {
730-
_messages[index] = updatedMessage;
731-
});
732-
}
733-
}
734-
735-
await OpenFilex.open(localPath);
736-
}
737-
}
738-
739-
void _handleSendPressed(types.PartialText message) {
740-
print('object'); // final textMessage = types.TextMessage(
741-
// author: _user,
742-
// createdAt: DateTime.now().millisecondsSinceEpoch,
743-
// id: const Uuid().v4(),
744-
// text: message.text,
745-
// );
746-
747-
// _addMessage(textMessage);
748-
}
693+
// void _handleMessageTap(BuildContext _, types.Message message) async {
694+
// if (message is types.FileMessage) {
695+
// var localPath = message.uri;
696+
697+
// if (message.uri.startsWith('http')) {
698+
// try {
699+
// final index = _messages.indexWhere((element) => element.id == message.id);
700+
// final updatedMessage = (_messages[index] as types.FileMessage).copyWith(
701+
// // isLoading: true,
702+
// );
703+
704+
// setState(() {
705+
// _messages[index] = updatedMessage;
706+
// });
707+
708+
// final client = http.Client();
709+
// final request = await client.get(Uri.parse(message.uri));
710+
// final bytes = request.bodyBytes;
711+
// final documentsDir = (await getApplicationDocumentsDirectory()).path;
712+
// localPath = '$documentsDir/${message.name}';
713+
714+
// if (!File(localPath).existsSync()) {
715+
// final file = File(localPath);
716+
// await file.writeAsBytes(bytes);
717+
// }
718+
// } finally {
719+
// final index = _messages.indexWhere((element) => element.id == message.id);
720+
// final updatedMessage = (_messages[index] as types.FileMessage).copyWith(
721+
// // isLoading: null,
722+
// );
723+
724+
// setState(() {
725+
// _messages[index] = updatedMessage;
726+
// });
727+
// }
728+
// }
729+
730+
// await OpenFilex.open(localPath);
731+
// }
732+
// }
733+
734+
// void _handleSendPressed(types.PartialText message) {
735+
// print('object'); // final textMessage = types.TextMessage(
736+
// // author: _user,
737+
// // createdAt: DateTime.now().millisecondsSinceEpoch,
738+
// // id: const Uuid().v4(),
739+
// // text: message.text,
740+
// // );
741+
742+
// // _addMessage(textMessage);
743+
// }
749744

750745
void _handlePreviewDataFetched(
751746
types.TextMessage message,
@@ -761,16 +756,17 @@ class _ChatDetailScreenState extends ConsumerState<ChatDetailScreen> {
761756
});
762757
}
763758

764-
void _loadMessages() async {
765-
// final response = await rootBundle.loadString('assets/messages.json');
766-
// final messages = (jsonDecode(response) as List).map((e) => types.Message.fromJson(e as Map<String, dynamic>)).toList();
759+
// void _loadMessages() async {
760+
// // final response = await rootBundle.loadString('assets/messages.json');
761+
// // final messages = (jsonDecode(response) as List).map((e) => types.Message.fromJson(e as Map<String, dynamic>)).toList();
767762

768-
final db = FirebaseFirestore.instance.collection('messages');
769-
final data = await db.get();
770-
final messages = data.docs.map((e) => types.Message.fromJson(e.data())).toList();
763+
// final db = FirebaseFirestore.instance.collection('messages');
764+
// final data = await db.get();
765+
// final messages = data.docs.map((e) => types.Message.fromJson(e.data())).toList();
766+
767+
// setState(() {
768+
// _messages = messages;
769+
// });
770+
// }
771771

772-
setState(() {
773-
_messages = messages;
774-
});
775-
}
776772
}

lib/src/features/chat/presentation/chat_screen.dart

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,29 +26,26 @@ class _ChatScreenState extends ConsumerState<ChatScreen> {
2626
final users = ref.watch(authControllerProvider);
2727
return Scaffold(
2828
backgroundColor: whitish,
29-
appBar: PreferredSize(
30-
preferredSize: Size.fromHeight(66.h),
31-
child: AppBar(
32-
primary: true,
33-
backgroundColor: whitish,
34-
elevation: 0,
35-
centerTitle: true,
36-
leading: IconButton(
37-
onPressed: () {
38-
Navigator.pop(context);
39-
},
40-
icon: Image.asset("assets/icons/arrow-left-icon.png"),
41-
),
42-
title: Text(
43-
"Chat",
44-
style: appBarTitle,
45-
),
29+
appBar: AppBar(
30+
primary: true,
31+
backgroundColor: whitish,
32+
elevation: 0,
33+
centerTitle: true,
34+
leading: IconButton(
35+
onPressed: () {
36+
Navigator.pop(context);
37+
},
38+
icon: Image.asset("assets/icons/arrow-left-icon.png"),
39+
),
40+
title: Text(
41+
"Chat",
42+
style: appBarTitle,
4643
),
4744
),
4845
body: Column(
4946
children: [
5047
Padding(
51-
padding: EdgeInsets.only(top: 24.h, left: 18.w, right: 18.w),
48+
padding: EdgeInsets.only(left: 18.w, right: 18.w),
5249
child: Column(
5350
crossAxisAlignment: CrossAxisAlignment.start,
5451
mainAxisAlignment: MainAxisAlignment.start,

lib/src/features/feed/presentation/feed_controller.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ class FeedController extends StateNotifier<List<Feed>> {
2222
state = data.docs.map((e) => e.data()).toList();
2323
}
2424

25+
Future<void> increment({required String id, required int value}) async {
26+
final ref = db.doc(id);
27+
final data = await ref.get();
28+
final feed = data.data();
29+
await ref.update({'donationTotal': feed!.donationTotal! + value});
30+
await getData();
31+
}
2532
}
2633

2734
final feedControllerProvider = StateNotifierProvider<FeedController, List<Feed>>(

lib/src/features/feed/presentation/feed_detail_screen.dart

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,16 @@ import 'package:flutter/material.dart';
22
import 'package:flutter_screenutil/flutter_screenutil.dart';
33
import 'package:intl/intl.dart';
44
import 'package:percent_indicator/percent_indicator.dart';
5+
import 'package:petscape/src/features/auth/domain/users.dart';
56
import 'package:petscape/src/features/feed/domain/feed.dart';
67
import 'package:petscape/src/features/feed/presentation/feed_donation_screen.dart';
78
import 'package:petscape/src/features/home/widgets/box_shadow.dart';
89
import 'package:petscape/src/shared/theme.dart';
910

1011
class FeedDetailScreen extends StatefulWidget {
1112
final Feed feed;
12-
const FeedDetailScreen({Key? key, required this.feed}) : super(key: key);
13+
final Users users;
14+
const FeedDetailScreen({Key? key, required this.feed, required this.users}) : super(key: key);
1315

1416
@override
1517
State<FeedDetailScreen> createState() => _FeedDetailScreenState();
@@ -167,9 +169,18 @@ class _FeedDetailScreenState extends State<FeedDetailScreen> {
167169
Row(
168170
mainAxisAlignment: MainAxisAlignment.spaceBetween,
169171
children: [
170-
Text(
171-
"Target: ${NumberFormat.currency(locale: 'id', symbol: 'Rp', decimalDigits: 0).format(widget.feed.donationTarget)}",
172-
style: feedDonationMoney,
172+
Column(
173+
crossAxisAlignment: CrossAxisAlignment.start,
174+
children: [
175+
Text(
176+
"Target: ${NumberFormat.currency(locale: 'id', symbol: 'Rp ', decimalDigits: 0).format(widget.feed.donationTarget)}",
177+
style: feedDonationMoney,
178+
),
179+
Text(
180+
"Terkumpul: ${NumberFormat.currency(locale: 'id', symbol: 'Rp ', decimalDigits: 0).format(widget.feed.donationTotal)}",
181+
style: feedDonationMoney,
182+
),
183+
],
173184
),
174185
Text(
175186
"${(((widget.feed.donationTotal ?? 0) / (widget.feed.donationTarget ?? 0)) * 100).toStringAsFixed(0)}%",
@@ -226,6 +237,7 @@ class _FeedDetailScreenState extends State<FeedDetailScreen> {
226237
MaterialPageRoute(
227238
builder: (context) => FeedDonationScreen(
228239
feed: widget.feed,
240+
users: widget.users,
229241
)),
230242
);
231243
},

0 commit comments

Comments
 (0)