Save and sort sheets by last access time

This commit is contained in:
2025-09-13 20:11:22 +02:00
parent a0d6368f02
commit 89aa15b8b8
7 changed files with 141 additions and 70 deletions

View File

@@ -26,16 +26,18 @@ class _LoginPageState extends State<LoginPage> {
}
Future<void> _checkJwtValidity() async {
final jwt = await _storageHelper.read(StorageKey.jwt);
final jwt = await _storageHelper.readSecure(SecureStorageKey.jwt);
if (jwt != null) {
final isValid = await _validateJwt(jwt);
if (isValid) {
_navigateToMainPage();
return;
} else {
final url = await _storageHelper.read(StorageKey.url);
final email = await _storageHelper.read(StorageKey.email);
final password = await _storageHelper.read(StorageKey.password);
final url = await _storageHelper.readSecure(SecureStorageKey.url);
final email = await _storageHelper.readSecure(SecureStorageKey.email);
final password = await _storageHelper.readSecure(
SecureStorageKey.password,
);
if (url != null && email != null && password != null) {
_login(url, email, password);
}
@@ -60,10 +62,10 @@ class _LoginPageState extends State<LoginPage> {
final apiClient = ApiClient(baseUrl: serverUrl);
final loginSuccessful = await apiClient.login(email, password);
if (loginSuccessful) {
await _storageHelper.write(StorageKey.url, serverUrl);
await _storageHelper.write(StorageKey.jwt, apiClient.token!);
await _storageHelper.write(StorageKey.email, email);
await _storageHelper.write(StorageKey.password, password);
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
@@ -74,9 +76,9 @@ class _LoginPageState extends State<LoginPage> {
}
void _navigateToMainPage() {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => MyHomePage()),
);
Navigator.of(
context,
).pushReplacement(MaterialPageRoute(builder: (_) => MyHomePage()));
}
@override
@@ -109,8 +111,11 @@ class _LoginPageState extends State<LoginPage> {
SizedBox(height: 16),
ElevatedButton(
onPressed: () {
_login(_urlController.text, _emailController.text,
_passwordController.text);
_login(
_urlController.text,
_emailController.text,
_passwordController.text,
);
},
child: Text('Login'),
),