Flutter: tampilkan URL server tersimpan saat layar login berikutnya
- Session.clear() kini hapus sesi (user/pass) tapi sisakan URL terakhir - + Session.readLastUrl() - LoginScreen mengisi field URL dari URL terakhir saat dibuka - sesudah logout login lagi URL sudah terisi, tak perlu ketik ulang
This commit is contained in:
@@ -96,6 +96,19 @@ class _LoginScreenState extends State<LoginScreen> {
|
||||
bool _busy = false;
|
||||
String? _error;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_loadUrl();
|
||||
}
|
||||
|
||||
Future<void> _loadUrl() async {
|
||||
final url = await Session.readLastUrl();
|
||||
if (url != null && mounted) {
|
||||
setState(() => _url.text = url);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
||||
@@ -27,9 +27,12 @@ class Session {
|
||||
}
|
||||
|
||||
static Future<void> clear() async {
|
||||
await _storage.delete(key: _kBase);
|
||||
await _storage.delete(key: _kDb);
|
||||
// Hapus sesi (user & pass), tapi sisakan URL (_kBase) agar login berikutnya mudah
|
||||
await _storage.delete(key: _kUser);
|
||||
await _storage.delete(key: _kPass);
|
||||
}
|
||||
|
||||
static Future<String?> readLastUrl() async {
|
||||
return _storage.read(key: _kBase);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user