From c0091e7f448fb4dc0b118f70864a91ac3398f29e Mon Sep 17 00:00:00 2001 From: Julian Mutter Date: Thu, 25 Sep 2025 18:53:44 +0200 Subject: [PATCH] Add log out button --- lib/home_page.dart | 23 ++++++++++++++++++++++- lib/storage_helper.dart | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/lib/home_page.dart b/lib/home_page.dart index c6ba9c2..fc2ef2a 100644 --- a/lib/home_page.dart +++ b/lib/home_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:logging/logging.dart'; +import 'package:sheetless/login_page.dart'; import 'package:sheetless/sheet_viewer_page.dart'; import 'package:sheetless/storage_helper.dart'; @@ -60,10 +61,30 @@ class _MyHomePageState extends State { return sheets; } + Future _logOut() async { + // Delete saved jwt + await _storageHelper.writeSecure(SecureStorageKey.jwt, null); + + if (!mounted) return; // Widget already removed + + Navigator.of( + context, + ).pushReplacement(MaterialPageRoute(builder: (_) => LoginPage())); + } + @override Widget build(BuildContext context) { return Scaffold( - appBar: AppBar(title: const Text("My Sheets")), + appBar: AppBar( + title: const Text("Sheetless"), + actions: [ + IconButton( + icon: const Icon(Icons.logout), + tooltip: 'Logout', + onPressed: _logOut, + ), + ], + ), body: FutureBuilder( future: acquireSheets(), builder: (BuildContext context, AsyncSnapshot> snapshot) { diff --git a/lib/storage_helper.dart b/lib/storage_helper.dart index eb1bfe4..ffc1e49 100644 --- a/lib/storage_helper.dart +++ b/lib/storage_helper.dart @@ -31,7 +31,7 @@ class StorageHelper { return secureStorage.read(key: key.name); } - Future writeSecure(SecureStorageKey key, String value) { + Future writeSecure(SecureStorageKey key, String? value) { return secureStorage.write(key: key.name, value: value); }