first commit
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
extension BuildContextExt on BuildContext {
|
||||
double get deviceHeight => MediaQuery.of(this).size.height;
|
||||
|
||||
double get deviceWidth => MediaQuery.of(this).size.width;
|
||||
}
|
||||
|
||||
extension NavigatorExt on BuildContext {
|
||||
void pop<T extends Object>([T? result]) {
|
||||
Navigator.pop(this, result);
|
||||
}
|
||||
|
||||
void popToRoot<T extends Object>() {
|
||||
Navigator.popUntil(this, (route) => route.isFirst);
|
||||
}
|
||||
|
||||
Future<T?> push<T extends Object>(Widget widget, [String? name]) async {
|
||||
return Navigator.push<T>(
|
||||
this,
|
||||
MaterialPageRoute(
|
||||
builder: (context) => widget,
|
||||
settings: RouteSettings(name: name),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Future<T?> pushReplacement<T extends Object, TO extends Object>(
|
||||
Widget widget) async {
|
||||
return Navigator.pushReplacement<T, TO>(
|
||||
this,
|
||||
MaterialPageRoute(builder: (context) => widget),
|
||||
);
|
||||
}
|
||||
|
||||
Future<T?> pushAndRemoveUntil<T extends Object>(
|
||||
Widget widget, bool Function(Route<dynamic> route) predicate) async {
|
||||
return Navigator.pushAndRemoveUntil<T>(
|
||||
this,
|
||||
MaterialPageRoute(builder: (context) => widget),
|
||||
predicate,
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
const List<String> _dayNames = [
|
||||
'Senin',
|
||||
'Selasa',
|
||||
'Rabu',
|
||||
'Kamis',
|
||||
'Jumat',
|
||||
'Sabtu',
|
||||
'Minggu',
|
||||
];
|
||||
|
||||
const List<String> _monthNames = [
|
||||
'Januari',
|
||||
'Februari',
|
||||
'Maret',
|
||||
'April',
|
||||
'Mei',
|
||||
'Juni',
|
||||
'Juli',
|
||||
'Agustus',
|
||||
'September',
|
||||
'Oktober',
|
||||
'November',
|
||||
'Desember'
|
||||
];
|
||||
|
||||
extension DateTimeExt on DateTime {
|
||||
String toFormattedTime() {
|
||||
final int hour12 = hour % 12;
|
||||
final String monthName = _monthNames[month - 1];
|
||||
|
||||
return '$day $monthName, ${hour12.toString().padLeft(2, '0')}:${minute.toString().padLeft(2, '0')}';
|
||||
}
|
||||
|
||||
String toFormattedDate() {
|
||||
String dayName = _dayNames[weekday - 1];
|
||||
String day = this.day.toString();
|
||||
String month = _monthNames[this.month - 1];
|
||||
String year = this.year.toString();
|
||||
|
||||
return '$dayName, $day $month $year';
|
||||
}
|
||||
|
||||
String toFormattedDate2() {
|
||||
String day = this.day.toString();
|
||||
String month = _monthNames[this.month - 1];
|
||||
String year = this.year.toString();
|
||||
|
||||
return '$day $month $year';
|
||||
}
|
||||
|
||||
String toFormattedDate3() {
|
||||
String day = this.day.toString();
|
||||
String month = _monthNames[this.month - 1];
|
||||
String year = this.year.toString();
|
||||
String hour = this
|
||||
.hour
|
||||
.toString()
|
||||
.padLeft(2, '0'); // Menambahkan nol di depan jika jam hanya satu digit
|
||||
String minute = this.minute.toString().padLeft(
|
||||
2, '0'); // Menambahkan nol di depan jika menit hanya satu digit
|
||||
String second = this.second.toString().padLeft(
|
||||
2, '0'); // Menambahkan nol di depan jika detik hanya satu digit
|
||||
|
||||
return '$day $month $year, $hour:$minute:$second';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
extension IntegerExt on int {
|
||||
String get currencyFormatRp => NumberFormat.currency(
|
||||
locale: 'id',
|
||||
symbol: 'Rp. ',
|
||||
decimalDigits: 0,
|
||||
).format(this);
|
||||
|
||||
String get currencyFormatRpV2 => NumberFormat.currency(
|
||||
locale: 'id',
|
||||
symbol: 'Rp ',
|
||||
decimalDigits: 0,
|
||||
).format(this);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
extension StringExt on String {
|
||||
int get toIntegerFromText {
|
||||
final cleanedText = replaceAll(RegExp(r'[^0-9]'), '');
|
||||
final parsedValue = int.tryParse(cleanedText) ?? 0;
|
||||
return parsedValue;
|
||||
}
|
||||
|
||||
String get currencyFormatRpV2 {
|
||||
final parsedValue = int.tryParse(this) ?? 0;
|
||||
return NumberFormat.currency(
|
||||
locale: 'id',
|
||||
symbol: 'Rp ',
|
||||
decimalDigits: 0,
|
||||
).format(parsedValue);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user