Merge pull request #32 from krawieck/handle-anonymous-user-profile-tab

This commit is contained in:
Filip Krawczyk 2020-09-08 23:09:08 +02:00 committed by GitHub
commit 1b732fe4f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 6 deletions

View File

@ -17,6 +17,27 @@ class UserProfileTab extends HookWidget {
return Observer( return Observer(
builder: (ctx) { builder: (ctx) {
if (ctx.watch<AccountsStore>().hasNoAccount) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('No account was added.'),
FlatButton.icon(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(
builder: (_) => AccountsConfigPage()));
},
icon: Icon(Icons.add),
label: Text('Add account'),
)
],
),
),
);
}
var user = ctx.watch<AccountsStore>().defaultUser; var user = ctx.watch<AccountsStore>().defaultUser;
return Scaffold( return Scaffold(

View File

@ -26,8 +26,8 @@ class SettingsPage extends StatelessWidget {
leading: Icon(Icons.person), leading: Icon(Icons.person),
title: Text('Accounts'), title: Text('Accounts'),
onTap: () { onTap: () {
Navigator.of(context) Navigator.of(context).push(
.push(MaterialPageRoute(builder: (_) => _AccountsConfig())); MaterialPageRoute(builder: (_) => AccountsConfigPage()));
}, },
), ),
ListTile( ListTile(
@ -35,7 +35,7 @@ class SettingsPage extends StatelessWidget {
title: Text('Appearance'), title: Text('Appearance'),
onTap: () { onTap: () {
Navigator.of(context).push( Navigator.of(context).push(
MaterialPageRoute(builder: (_) => _AppearanceConfig())); MaterialPageRoute(builder: (_) => AppearanceConfigPage()));
}, },
) )
], ],
@ -45,7 +45,7 @@ class SettingsPage extends StatelessWidget {
} }
} }
class _AppearanceConfig extends StatelessWidget { class AppearanceConfigPage extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
var theme = Theme.of(context); var theme = Theme.of(context);
@ -84,7 +84,7 @@ class _AppearanceConfig extends StatelessWidget {
} }
} }
class _AccountsConfig extends HookWidget { class AccountsConfigPage extends HookWidget {
final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey(); final GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey();
@override @override

View File

@ -102,6 +102,9 @@ abstract class _AccountsStore with Store {
bool isAnonymousFor(String instanceUrl) => bool isAnonymousFor(String instanceUrl) =>
Computed(() => users[instanceUrl].isEmpty).value; Computed(() => users[instanceUrl].isEmpty).value;
@computed
bool get hasNoAccount => users.values.every((e) => e.isEmpty);
/// adds a new account /// adds a new account
/// if it's the first account ever the account is /// if it's the first account ever the account is
/// set as default for the app /// set as default for the app
@ -129,7 +132,7 @@ abstract class _AccountsStore with Store {
// first account for this instance // first account for this instance
if (users[instanceUrl].isEmpty) { if (users[instanceUrl].isEmpty) {
// first account ever // first account ever
if (users.values.every((e) => e.isEmpty)) { if (hasNoAccount) {
setDefaultAccount(instanceUrl, userData.name); setDefaultAccount(instanceUrl, userData.name);
} }