Merge pull request #32 from krawieck/handle-anonymous-user-profile-tab
This commit is contained in:
commit
1b732fe4f2
|
@ -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(
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue