first commit

This commit is contained in:
Aditya Siregar
2025-07-30 22:38:44 +07:00
commit 73320561b0
444 changed files with 64633 additions and 0 deletions
@@ -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,
);
}
}
+66
View File
@@ -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';
}
}
+15
View File
@@ -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);
}
+18
View File
@@ -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);
}
}