Output login errors to user

This commit is contained in:
2025-09-13 20:58:15 +02:00
parent dc0da85688
commit 4aa43d8f20
3 changed files with 84 additions and 8 deletions

View File

@@ -3,6 +3,7 @@ import 'package:jwt_decoder/jwt_decoder.dart';
import 'package:sheetless/api.dart';
import 'package:sheetless/home_page.dart';
import 'package:sheetless/storage_helper.dart';
import 'package:sheetless/utility.dart';
class LoginPage extends StatefulWidget {
const LoginPage({super.key});
@@ -62,17 +63,16 @@ class _LoginPageState extends State<LoginPage> {
});
serverUrl = "$serverUrl/api";
final apiClient = ApiClient(baseUrl: serverUrl);
final loginSuccessful = await apiClient.login(email, password);
if (loginSuccessful) {
final loginResult = await apiClient.login(email, password);
if (loginResult.isOk()) {
await _storageHelper.writeSecure(SecureStorageKey.url, serverUrl);
await _storageHelper.writeSecure(SecureStorageKey.jwt, apiClient.token!);
await _storageHelper.writeSecure(SecureStorageKey.email, email);
await _storageHelper.writeSecure(SecureStorageKey.password, password);
_navigateToMainPage();
} else {
// TODO: give more varied error messages
setState(() {
_error = "Login failed.";
_error = "Login failed.\n${loginResult.error()}";
});
}
}