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;
|
bool _busy = false;
|
||||||
String? _error;
|
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
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
|
|||||||
@@ -27,9 +27,12 @@ class Session {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static Future<void> clear() async {
|
static Future<void> clear() async {
|
||||||
await _storage.delete(key: _kBase);
|
// Hapus sesi (user & pass), tapi sisakan URL (_kBase) agar login berikutnya mudah
|
||||||
await _storage.delete(key: _kDb);
|
|
||||||
await _storage.delete(key: _kUser);
|
await _storage.delete(key: _kUser);
|
||||||
await _storage.delete(key: _kPass);
|
await _storage.delete(key: _kPass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Future<String?> readLastUrl() async {
|
||||||
|
return _storage.read(key: _kBase);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user