step 21 : fix bug history transaksi, logo apk.png

This commit is contained in:
sindhu
2024-01-17 09:05:11 +07:00
parent f915ed2c10
commit be50c48607
3 changed files with 147 additions and 32 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

View File

@@ -2,10 +2,12 @@ import 'package:flutter/material.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:intl/date_symbol_data_local.dart';
import 'app/route.dart'; import 'app/route.dart';
void main() async { void main() async {
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
initializeDateFormatting();
SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle(
statusBarIconBrightness: statusBarIconBrightness:
Brightness.dark, // this will change the brightness of the icons Brightness.dark, // this will change the brightness of the icons

View File

@@ -28,7 +28,44 @@ class HistoryRowAtasWidget extends HookConsumerWidget {
@override @override
Widget build(BuildContext context, WidgetRef ref) { Widget build(BuildContext context, WidgetRef ref) {
// check file exist // check file exist
Future<Widget> checkFileExistence(String fileUrl) async { // Future<Widget> checkFileExistence(String fileUrl) async {
// try {
// final dio = Dio();
// final response = await dio.head(fileUrl);
// if (response.statusCode == 200) {
// return SvgPicture.network(
// fileUrl,
// semanticsLabel: 'Icon pizza',
// // placeholderBuilder: (BuildContext context) => Container(
// // padding: const EdgeInsets.all(30.0),
// // child: const CircularProgressIndicator(),
// // ),
// );
// } else {
// return SvgPicture.network(
// 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg',
// semanticsLabel: 'Icon pizza',
// // placeholderBuilder: (BuildContext context) => Container(
// // padding: const EdgeInsets.all(30.0),
// // child: const CircularProgressIndicator(),
// // ),
// );
// }
// } catch (e) {
// // print('Error checking file existence: $e');
// return SvgPicture.network(
// 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg',
// semanticsLabel: 'Icon pizza',
// // placeholderBuilder: (BuildContext context) => Container(
// // padding: const EdgeInsets.all(30.0),
// // child: const CircularProgressIndicator(),
// // ),
// );
// }
// }
final iconProvider =
FutureProvider.family<Widget, String>((ref, fileUrl) async {
try { try {
final dio = Dio(); final dio = Dio();
final response = await dio.head(fileUrl); final response = await dio.head(fileUrl);
@@ -36,39 +73,26 @@ class HistoryRowAtasWidget extends HookConsumerWidget {
return SvgPicture.network( return SvgPicture.network(
fileUrl, fileUrl,
semanticsLabel: 'Icon pizza', semanticsLabel: 'Icon pizza',
placeholderBuilder: (BuildContext context) => Container(
padding: const EdgeInsets.all(30.0),
child: const CircularProgressIndicator(),
),
); );
} else { } else {
return SvgPicture.network( return SvgPicture.network(
'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg', 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg',
semanticsLabel: 'Icon pizza', semanticsLabel: 'Icon pizza',
placeholderBuilder: (BuildContext context) => Container(
padding: const EdgeInsets.all(30.0),
child: const CircularProgressIndicator(),
),
); );
} }
} catch (e) { } catch (e) {
// print('Error checking file existence: $e');
return SvgPicture.network( return SvgPicture.network(
'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg', 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg',
semanticsLabel: 'Icon pizza', semanticsLabel: 'Icon pizza',
placeholderBuilder: (BuildContext context) => Container(
padding: const EdgeInsets.all(30.0),
child: const CircularProgressIndicator(),
),
); );
} }
} });
// fungsi tanggal // fungsi tanggal
String formatDateString(String inputDate) { String formatDateString(String inputDate) {
try { try {
// Parsing tanggal dari string input // Parsing tanggal dari string input
DateTime date = DateFormat('dd-MM-yyyy').parse(inputDate); DateTime date = DateFormat('dd-MM-yyyy','id').parse(inputDate);
// Format tanggal ke '30 Des 2023' // Format tanggal ke '30 Des 2023'
String formattedDate = DateFormat('dd MMM yyyy', 'id').format(date); String formattedDate = DateFormat('dd MMM yyyy', 'id').format(date);
@@ -82,6 +106,46 @@ class HistoryRowAtasWidget extends HookConsumerWidget {
} }
} }
Widget getIconUrl(String categoryid) {
List<Map<String, String>> iconDataList = [
{'categoryid': '1', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '2', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '3', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_3.svg'},
{'categoryid': '4', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '5', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_5.svg'},
{'categoryid': '6', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_6.svg'},
{'categoryid': '7', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '8', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '9', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '10', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '11', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
{'categoryid': '12', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_12.svg'},
{'categoryid': '13', 'url': 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg'},
];
String urlFix = "";
for (var i = 0; i < iconDataList.length; i++) {
if (iconDataList[i]['categoryid'] == categoryid) {
// urlFix =
// "https://devone.aplikasi.web.id/pettycash-media/icon/icon_$icon_category_id.svg";
urlFix = iconDataList[i]['url'] ?? "https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg";
}
}
if (urlFix == "") {
urlFix =
"https://devone.aplikasi.web.id/pettycash-media/icon/icon_13.svg";
}
// return urlFix;
return SvgPicture.network(
urlFix,
semanticsLabel: 'Icon category',
);
}
return Row( return Row(
children: [ children: [
// kiri // kiri
@@ -95,22 +159,71 @@ class HistoryRowAtasWidget extends HookConsumerWidget {
), ),
), ),
// child: Text('s'), // child: Text('s'),
child: FutureBuilder<Widget>( // child: FutureBuilder<Widget>(
future: checkFileExistence( // future: checkFileExistence(
'https://devone.aplikasi.web.id/pettycash-media/icon/icon_$icon_category_id.svg'), // 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_$icon_category_id.svg',
builder: (context, snapshot) { // ),
if (snapshot.connectionState == ConnectionState.waiting) { // builder: (context, snapshot) {
return CircularProgressIndicator(); // // if (snapshot.connectionState == ConnectionState.waiting) {
} else if (snapshot.hasError) { // // // return CircularProgressIndicator();
return Icon( // // return Text('');
Icons.error, // // } else if (snapshot.hasError) {
color: Colors.red, // // return Icon(
); // // Icons.error,
} else { // // color: Colors.red,
return snapshot.data ?? Container(); // // );
} // // } else {
}, // // return snapshot.data ?? Container();
), // // }
// if (snapshot.connectionState == ConnectionState.done) {
// return snapshot.data ?? Container();
// } else if (snapshot.hasError) {
// return Icon(
// Icons.error,
// color: Colors.red,
// );
// } else {
// return Text('');
// }
// },
// ),
// child: Consumer(
// builder: (context, watch, child) {
// String iconUrl =
// 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_$icon_category_id.svg';
// final iconAsyncValue = ref.read(
// iconProvider(
// iconUrl,
// ),
// );
// return iconAsyncValue.when(
// loading: () {
// print('loading iconurl : $iconUrl');
// return CircularProgressIndicator();
// },
// error: (error, stackTrace) {
// print('error iconurl : $iconUrl');
// return Icon(
// Icons.error,
// color: Colors.red,
// );
// },
// data: (iconWidget) {
// print('data iconurl : $iconUrl');
// return iconWidget ?? Container();
// }
// );
// },
// ),
// child: SvgPicture.network(
// 'https://devone.aplikasi.web.id/pettycash-media/icon/icon_$icon_category_id.svg',
// semanticsLabel: 'Icon pizza',
// ),
child: getIconUrl(icon_category_id),
), ),
// tengah // tengah