feat(app): implement Product Scan review flow, dynamic batch expiry picker, custom PDFs, PO relationships, and aligned card layouts

This commit is contained in:
Rafhan Mazaya Fathurrahman committed 2026-07-09 12:36:06 +07:00
1 parent 9ff4a4a922
commit 577be04308
69 files changed
+5645 -1657

No files matched your search

+22 -1
View File
@@ -19,7 +19,7 @@ class AppConfig {
// - Physical Device on same Wi-Fi: use the backend machine's current LAN IP
// - Android Emulator: use 'http://10.0.2.2:8000/api/v1'
// - iOS Simulator: use 'http://localhost:8000/api/v1'
static const String _lanBaseUrl = 'http://192.168.80.84:8000/api/v1';
static const String _lanBaseUrl = 'http://192.168.70.4:8000/api/v1';
// Ngrok public tunnel URL (update ini setiap ngrok di-restart)
static const String _ngrokBaseUrl = 'https://unlocated-waylon-potently.ngrok-free.dev/api/v1';
@@ -111,6 +111,27 @@ class AppConfig {
static const Color textSecondary = Color(0xFF757575);
static const Color textOnPrimary = Colors.white;
// Spacing System (Margin & Padding)
static const double spaceXS = 4.0;
static const double spaceSmall = 8.0;
static const double spaceMedium = 12.0;
static const double spaceLarge = 16.0;
static const double spaceXL = 24.0;
static const double spaceXXL = 32.0;
static const EdgeInsets paddingXS = EdgeInsets.all(spaceXS);
static const EdgeInsets paddingSmall = EdgeInsets.all(spaceSmall);
static const EdgeInsets paddingMedium = EdgeInsets.all(spaceMedium);
static const EdgeInsets paddingLarge = EdgeInsets.all(spaceLarge);
static const EdgeInsets paddingXL = EdgeInsets.all(spaceXL);
static const EdgeInsets screenPadding = EdgeInsets.symmetric(horizontal: spaceXL, vertical: spaceLarge);
// Border Radii
static const double borderRadiusSmall = 8.0;
static const double borderRadiusMedium = 12.0;
static const double borderRadiusLarge = 16.0;
static const double borderRadiusXL = 24.0;
// Typography Config
// Using Google Fonts - Inter for clean, modern look
static TextStyle get h1 => GoogleFonts.inter(