loris/lib/pages/settings/account.dart

51 lines
1.2 KiB
Dart

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:localization/localization.dart';
import '../../business_logic/settings.dart' as settings;
class AccountSettings extends StatelessWidget {
const AccountSettings({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Row(
children: const [LogoutButton()],
);
}
}
class LogoutButton extends StatelessWidget {
const LogoutButton({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
FutureBuilder<String>(
future: settings.loadInstanceUrl(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data ?? "no-instance".i18n());
} else {
return const CircularProgressIndicator();
}
},
),
TextButton.icon(
onPressed: () {
logout();
},
icon: const Icon(Icons.logout),
label: Text("logout".i18n()))
],
);
}
}
void logout() async {
await settings.saveAuthCode("");
exit(0);
}