perbaiki web dan mobile history
|
After Width: | Height: | Size: 160 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 53 KiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
|
@ -82,15 +82,22 @@ class _HistoryScreenState extends State<HistoryScreen> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 6),
|
const SizedBox(height: 6),
|
||||||
Text('Kelas: ${item.predictedClass}'),
|
_infoRow(
|
||||||
Text('Confidence: ${item.confidence}'),
|
icon: Icons.label,
|
||||||
Text(
|
text: 'Kelas: ${item.predictedClass}',
|
||||||
'Lokasi: ${item.locationAddress ?? 'Alamat tidak terdeteksi'}',
|
|
||||||
),
|
),
|
||||||
const SizedBox(height: 6),
|
_infoRow(
|
||||||
Text(
|
icon: Icons.bar_chart,
|
||||||
_formatTimestamp(item.createdAt),
|
text: 'Confidence: ${item.confidence}',
|
||||||
style: const TextStyle(color: Colors.black54),
|
),
|
||||||
|
_infoRow(
|
||||||
|
icon: Icons.location_on,
|
||||||
|
text:
|
||||||
|
'Lokasi: ${item.locationAddress ?? 'Alamat tidak terdeteksi'}',
|
||||||
|
),
|
||||||
|
_infoRow(
|
||||||
|
icon: Icons.calendar_today,
|
||||||
|
text: _formatTimestamp(item.createdAt),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
@ -111,4 +118,18 @@ class _HistoryScreenState extends State<HistoryScreen> {
|
||||||
final minute = twoDigits(value.minute);
|
final minute = twoDigits(value.minute);
|
||||||
return '$day-$month-$year $hour:$minute';
|
return '$day-$month-$year $hour:$minute';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Widget _infoRow({required IconData icon, required String text}) {
|
||||||
|
return Padding(
|
||||||
|
padding: const EdgeInsets.only(bottom: 4),
|
||||||
|
child: Row(
|
||||||
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Icon(icon, size: 16, color: Colors.black54),
|
||||||
|
const SizedBox(width: 6),
|
||||||
|
Expanded(child: Text(text)),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -35,7 +35,7 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||||
try {
|
try {
|
||||||
final response = await http
|
final response = await http
|
||||||
.post(
|
.post(
|
||||||
Uri.parse('https://gobony-wedgy-cathi.ngrok-free.dev/api/mobile/login'),
|
Uri.parse('http://192.168.18.23:8000/api/mobile/login'),
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ class _RegisterScreenState extends State<RegisterScreen> {
|
||||||
try {
|
try {
|
||||||
final response = await http
|
final response = await http
|
||||||
.post(
|
.post(
|
||||||
Uri.parse('https://gobony-wedgy-cathi.ngrok-free.dev/api/mobile/register'),
|
Uri.parse('http://192.168.18.23:8000/api/mobile/register'),
|
||||||
headers: {
|
headers: {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
|
|
||||||
|
After Width: | Height: | Size: 6.2 MiB |
|
After Width: | Height: | Size: 4.4 MiB |
|
After Width: | Height: | Size: 906 KiB |
|
|
@ -10,14 +10,12 @@
|
||||||
body { font-family: 'Plus Jakarta Sans', sans-serif; }
|
body { font-family: 'Plus Jakarta Sans', sans-serif; }
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="flex items-center justify-center min-h-screen bg-cover bg-center relative"
|
<body class="flex items-center justify-end min-h-screen bg-cover bg-center relative"
|
||||||
style="background-image: url('https://images.unsplash.com/photo-1536617621572-1d5f1e6269a0?q=80&w=2070&auto=format&fit=crop');">
|
style="background-image: url('/images/padi.png'); background-attachment: fixed;">
|
||||||
|
|
||||||
<div class="absolute inset-0 bg-black/50 backdrop-blur-[2px]"></div>
|
<div class="relative z-10 w-full max-w-md px-6 mr-16">
|
||||||
|
|
||||||
<div class="relative z-10 w-full max-w-md px-6">
|
<div class="bg-white/40 backdrop-blur-md rounded-3xl shadow-2xl overflow-hidden border border-white/50">
|
||||||
|
|
||||||
<div class="bg-white/90 backdrop-blur-md rounded-3xl shadow-2xl overflow-hidden border border-white/50">
|
|
||||||
|
|
||||||
<div class="pt-8 pb-6 text-center">
|
<div class="pt-8 pb-6 text-center">
|
||||||
<h1 class="text-3xl font-bold text-emerald-800 mb-1">Sistem Pakar Padi</h1>
|
<h1 class="text-3xl font-bold text-emerald-800 mb-1">Sistem Pakar Padi</h1>
|
||||||
|
|
@ -55,8 +53,8 @@ class="w-full bg-emerald-600 hover:bg-emerald-700 text-white font-bold py-3.5 ro
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-gray-50/50 px-8 py-4 border-t border-gray-100 text-center">
|
<div class="bg-white/40 px-8 py-4 border-t border-gray-100 text-center">
|
||||||
<p class="text-xs text-gray-400">
|
<p class="text-xs text-gray-600">
|
||||||
© 2025 Ahmad Rizal Habibullah
|
© 2025 Ahmad Rizal Habibullah
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||