From b797ac3f5ee6f46d3b98adc65c465f8a99fbdf80 Mon Sep 17 00:00:00 2001 From: Syaroful Date: Wed, 6 Nov 2024 08:54:08 +0700 Subject: [PATCH] refactor: tidy up ui code --- .../lib/core/widgets/show_info.dart | 27 ------------- .../features/control/view/control_screen.dart | 2 +- .../dashboard/view/dashboard_screen.dart | 8 ++-- .../view/conductivity_screen.dart | 2 +- .../humidity/view/humidity_screen.dart | 38 +++---------------- .../nitrogen/view/nitrogen_screen.dart | 2 +- .../home/detail_pages/ph/view/ph_screen.dart | 2 +- .../phosphorus/view/phosphorus_screen.dart | 2 +- .../potassium/view/potassium_screen.dart | 4 +- .../view/soil_moisture_screen.dart | 3 +- .../view/soil_temperature_screen.dart | 32 ++++++++++++++-- .../temperature/view/temperature_screen.dart | 2 +- .../features/plants/view/plants_screen.dart | 4 +- .../features/setting/view/account_screen.dart | 2 +- .../features/setting/view/setting_screen.dart | 6 +-- 15 files changed, 53 insertions(+), 83 deletions(-) diff --git a/agrilink_vocpro/lib/core/widgets/show_info.dart b/agrilink_vocpro/lib/core/widgets/show_info.dart index 2344d35..8b13789 100644 --- a/agrilink_vocpro/lib/core/widgets/show_info.dart +++ b/agrilink_vocpro/lib/core/widgets/show_info.dart @@ -1,28 +1 @@ -import 'package:flutter/material.dart'; -Future showInfo(BuildContext context, String title, String content) { - return showDialog( - context: context, - builder: (context) => AlertDialog( - content: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Text(title), - const SizedBox(height: 16), - Text( - style: Theme.of(context).textTheme.bodySmall, - content, - ), - ], - ), - actions: [ - TextButton( - onPressed: () { - Navigator.pop(context); - }, - child: const Text('OK'), - ) - ], - ), - ); -} diff --git a/agrilink_vocpro/lib/features/control/view/control_screen.dart b/agrilink_vocpro/lib/features/control/view/control_screen.dart index e6eedbd..0ed74d5 100644 --- a/agrilink_vocpro/lib/features/control/view/control_screen.dart +++ b/agrilink_vocpro/lib/features/control/view/control_screen.dart @@ -16,7 +16,7 @@ class ControlScreen extends StatelessWidget { final provider = Provider.of(context, listen: true); return Scaffold( appBar: AppBar( - title: Text('Control', style: AppTheme.labelMedium), + title: Text('Kontrol', style: AppTheme.labelMedium), centerTitle: true, backgroundColor: Colors.white, scrolledUnderElevation: 0, diff --git a/agrilink_vocpro/lib/features/dashboard/view/dashboard_screen.dart b/agrilink_vocpro/lib/features/dashboard/view/dashboard_screen.dart index 08f98bc..030e4cd 100644 --- a/agrilink_vocpro/lib/features/dashboard/view/dashboard_screen.dart +++ b/agrilink_vocpro/lib/features/dashboard/view/dashboard_screen.dart @@ -26,22 +26,22 @@ class DashboardScreen extends StatelessWidget { BottomNavigationBarItem( icon: Icon(BootstrapIcons.house), activeIcon: Icon(BootstrapIcons.house_fill), - label: 'Home', + label: 'Beranda', ), BottomNavigationBarItem( icon: Icon(BootstrapIcons.toggle_off), activeIcon: Icon(BootstrapIcons.toggle_on), - label: 'Control', + label: 'Kontrol', ), BottomNavigationBarItem( icon: Icon(BootstrapIcons.flower1), activeIcon: Icon(BootstrapIcons.flower1), - label: 'Plants', + label: 'Tanaman', ), BottomNavigationBarItem( icon: Icon(BootstrapIcons.gear), activeIcon: Icon(BootstrapIcons.gear_fill), - label: 'Setting', + label: 'Pengaturan', ), ], ), diff --git a/agrilink_vocpro/lib/features/home/detail_pages/conductivity/view/conductivity_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/conductivity/view/conductivity_screen.dart index 3be4dbf..0ead696 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/conductivity/view/conductivity_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/conductivity/view/conductivity_screen.dart @@ -95,7 +95,7 @@ class ConductivityScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Condutivity', + 'Konduktifitas Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), diff --git a/agrilink_vocpro/lib/features/home/detail_pages/humidity/view/humidity_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/humidity/view/humidity_screen.dart index 8733026..ab15400 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/humidity/view/humidity_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/humidity/view/humidity_screen.dart @@ -1,5 +1,7 @@ import 'package:agrilink_vocpro/core/constant/app_theme.dart'; import 'package:agrilink_vocpro/core/state/result_state.dart'; +import 'package:agrilink_vocpro/core/widgets/error_data_state_widget.dart'; +import 'package:agrilink_vocpro/core/widgets/no_data_state_widget.dart'; import 'package:agrilink_vocpro/features/home/detail_pages/humidity/provider/humidity_provider.dart'; import 'package:agrilink_vocpro/features/home/provider/home_provider.dart'; import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart'; @@ -94,7 +96,7 @@ class HumidityScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Humidity', + 'Kelembaban Udara', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), @@ -145,39 +147,9 @@ class HumidityScreen extends StatelessWidget { 0), ); case ResultState.error: - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon( - BootstrapIcons.exclamation_circle, - color: Colors.grey.shade400, - ), - SizedBox(height: 8.h), - Text( - 'Terjadi Kesalahan', - style: AppTheme.labelSmall, - ), - ], - ), - ); + return const ErrorDataStateWidget(); case ResultState.noData: - return Center( - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Icon( - BootstrapIcons.database_fill_x, - color: Colors.grey.shade400, - ), - SizedBox(height: 8.h), - Text( - 'Tidak Ada Data', - style: AppTheme.labelSmall, - ), - ], - ), - ); + return const NoDataStateWidget(); case ResultState.initial: return const SizedBox.shrink(); default: diff --git a/agrilink_vocpro/lib/features/home/detail_pages/nitrogen/view/nitrogen_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/nitrogen/view/nitrogen_screen.dart index 2038526..0cae22d 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/nitrogen/view/nitrogen_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/nitrogen/view/nitrogen_screen.dart @@ -95,7 +95,7 @@ class NitrogenScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Nitrogen', + 'Nitrogen Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), diff --git a/agrilink_vocpro/lib/features/home/detail_pages/ph/view/ph_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/ph/view/ph_screen.dart index 471e0e6..4412c29 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/ph/view/ph_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/ph/view/ph_screen.dart @@ -86,7 +86,7 @@ class PhScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Acidity', + 'pH Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), diff --git a/agrilink_vocpro/lib/features/home/detail_pages/phosphorus/view/phosphorus_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/phosphorus/view/phosphorus_screen.dart index fadbb7f..0664528 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/phosphorus/view/phosphorus_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/phosphorus/view/phosphorus_screen.dart @@ -95,7 +95,7 @@ class PhosphorusScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Phosphorus', + 'Fosfor Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), diff --git a/agrilink_vocpro/lib/features/home/detail_pages/potassium/view/potassium_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/potassium/view/potassium_screen.dart index e6f3ecd..b224c6c 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/potassium/view/potassium_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/potassium/view/potassium_screen.dart @@ -25,7 +25,7 @@ class PotassiumScreen extends StatelessWidget { length: 2, child: Scaffold( appBar: AppBar( - title: Text('Soil Potassium', style: AppTheme.labelMedium), + title: Text('Soil Potassium (Kalium)', style: AppTheme.labelMedium), centerTitle: true, backgroundColor: Colors.white, scrolledUnderElevation: 0, @@ -95,7 +95,7 @@ class PotassiumScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Potassium', + 'Kalium Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), diff --git a/agrilink_vocpro/lib/features/home/detail_pages/soil_moisture/view/soil_moisture_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/soil_moisture/view/soil_moisture_screen.dart index 9a45447..209e00d 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/soil_moisture/view/soil_moisture_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/soil_moisture/view/soil_moisture_screen.dart @@ -125,7 +125,7 @@ class SoilMoistureScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Moisture', + 'Kelembaban Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), @@ -151,7 +151,6 @@ class SoilMoistureScreen extends StatelessWidget { child: Consumer( builder: (context, provider, child) { final dataState = provider.dataState; - switch (dataState) { case ResultState.loading: return const Center(child: CupertinoActivityIndicator()); diff --git a/agrilink_vocpro/lib/features/home/detail_pages/soil_temperature/view/soil_temperature_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/soil_temperature/view/soil_temperature_screen.dart index 6c6284c..ff35554 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/soil_temperature/view/soil_temperature_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/soil_temperature/view/soil_temperature_screen.dart @@ -7,7 +7,6 @@ import 'package:provider/provider.dart'; import 'package:agrilink_vocpro/core/constant/app_constant.dart'; import 'package:agrilink_vocpro/core/constant/app_theme.dart'; import 'package:agrilink_vocpro/core/state/result_state.dart'; -import 'package:agrilink_vocpro/core/widgets/show_info.dart'; import 'package:agrilink_vocpro/features/home/detail_pages/soil_temperature/provider/soil_temp_provider.dart'; import 'package:agrilink_vocpro/features/home/widgets/graphic_widget.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -172,7 +171,7 @@ class SoilTemperatureScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Soil Temperature', + 'Suhu Tanah', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), @@ -180,7 +179,7 @@ class SoilTemperatureScreen extends StatelessWidget { iconSize: 20.r, color: Colors.blue, onPressed: () { - showInfo(context, 'Soil Temperature', AppConstant.soilTempInfo); + showInfo(context, 'Suhu Tanah', AppConstant.soilTempInfo); }, icon: const Icon(BootstrapIcons.info_circle), ), @@ -240,3 +239,30 @@ class SoilTemperatureScreen extends StatelessWidget { ); } } + +Future showInfo(BuildContext context, String title, String content) { + return showDialog( + context: context, + builder: (context) => AlertDialog( + content: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text(title), + const SizedBox(height: 16), + Text( + style: Theme.of(context).textTheme.bodySmall, + content, + ), + ], + ), + actions: [ + TextButton( + onPressed: () { + Navigator.pop(context); + }, + child: const Text('OK'), + ) + ], + ), + ); +} diff --git a/agrilink_vocpro/lib/features/home/detail_pages/temperature/view/temperature_screen.dart b/agrilink_vocpro/lib/features/home/detail_pages/temperature/view/temperature_screen.dart index a5f1968..c4bf2e5 100644 --- a/agrilink_vocpro/lib/features/home/detail_pages/temperature/view/temperature_screen.dart +++ b/agrilink_vocpro/lib/features/home/detail_pages/temperature/view/temperature_screen.dart @@ -98,7 +98,7 @@ class TemperatureScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Text( - 'Temperature', + 'Suhu Ruangan', style: AppTheme.labelMedium, textAlign: TextAlign.center, ), diff --git a/agrilink_vocpro/lib/features/plants/view/plants_screen.dart b/agrilink_vocpro/lib/features/plants/view/plants_screen.dart index 1a5d423..8254d73 100644 --- a/agrilink_vocpro/lib/features/plants/view/plants_screen.dart +++ b/agrilink_vocpro/lib/features/plants/view/plants_screen.dart @@ -15,10 +15,10 @@ class PlantsScreen extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, children: [ Icon(Icons.eco_rounded, size: 100.r, color: AppColor.secondary), - Text('Coming Soon', style: AppTheme.titleLarge), + Text('Segera Hadir', style: AppTheme.titleLarge), SizedBox(height: 8.h), Text( - 'This featureis under development', + 'Fitur ini sedang dalam tahap pengembangan', textAlign: TextAlign.center, style: AppTheme.labelSmall, ), diff --git a/agrilink_vocpro/lib/features/setting/view/account_screen.dart b/agrilink_vocpro/lib/features/setting/view/account_screen.dart index 3553acc..902118c 100644 --- a/agrilink_vocpro/lib/features/setting/view/account_screen.dart +++ b/agrilink_vocpro/lib/features/setting/view/account_screen.dart @@ -11,7 +11,7 @@ class AccountScreen extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('Detail Account', style: AppTheme.labelMedium), + title: Text('Detail Akun', style: AppTheme.labelMedium), centerTitle: true, backgroundColor: Colors.white, scrolledUnderElevation: 0, diff --git a/agrilink_vocpro/lib/features/setting/view/setting_screen.dart b/agrilink_vocpro/lib/features/setting/view/setting_screen.dart index 197a1af..5aabaf3 100644 --- a/agrilink_vocpro/lib/features/setting/view/setting_screen.dart +++ b/agrilink_vocpro/lib/features/setting/view/setting_screen.dart @@ -16,7 +16,7 @@ class SettingScreen extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('Setting', style: AppTheme.labelMedium), + title: Text('Pengaturan', style: AppTheme.labelMedium), centerTitle: true, backgroundColor: Colors.white, scrolledUnderElevation: 0, @@ -52,7 +52,7 @@ class SettingScreen extends StatelessWidget { children: [ ListTile( tileColor: Colors.white, - title: Text('Account', + title: Text('Akun', style: AppTheme.labelSmall .copyWith(color: Colors.black87)), leading: const Icon(BootstrapIcons.person), @@ -90,7 +90,7 @@ class SettingScreen extends StatelessWidget { // ), ListTile( tileColor: Colors.white, - title: Text('Logout', + title: Text('Keluar', style: AppTheme.labelSmall.copyWith(color: Colors.red)), leading: const Icon( BootstrapIcons.box_arrow_right,