Browse Source

neon: AccountSettingsPage get bloc via context

pull/377/head
Nikolas Rimikis 2 years ago
parent
commit
e25aeeaa5a
No known key found for this signature in database
GPG Key ID: 85ED1DE9786A4FF2
  1. 35
      packages/neon/neon/lib/src/pages/account_settings.dart
  2. 1
      packages/neon/neon/lib/src/router.dart

35
packages/neon/neon/lib/src/pages/account_settings.dart

@ -1,24 +1,24 @@
part of '../../neon.dart';
class AccountSettingsPage extends StatelessWidget {
AccountSettingsPage({
required this.bloc,
const AccountSettingsPage({
required this.account,
super.key,
});
final AccountsBloc bloc;
final Account account;
late final _options = bloc.getOptionsFor(account);
late final _userDetailsBloc = bloc.getUserDetailsBlocFor(account);
late final _name = account.client.humanReadableID;
@override
Widget build(final BuildContext context) => Scaffold(
Widget build(final BuildContext context) {
final accountsBloc = Provider.of<AccountsBloc>(context, listen: false);
final options = accountsBloc.getOptionsFor(account);
final userDetailsBloc = accountsBloc.getUserDetailsBlocFor(account);
final name = account.client.humanReadableID;
return Scaffold(
resizeToAvoidBottomInset: false,
appBar: AppBar(
title: Text(_name),
title: Text(name),
actions: [
IconButton(
onPressed: () async {
@ -28,9 +28,9 @@ class AccountSettingsPage extends StatelessWidget {
// ignore: use_build_context_synchronously
AppLocalizations.of(context).accountOptionsRemoveConfirm(account.client.humanReadableID),
)) {
final isActive = bloc.activeAccount.value == account;
final isActive = accountsBloc.activeAccount.value == account;
bloc.removeAccount(account);
accountsBloc.removeAccount(account);
if (isActive) {
// ignore: use_build_context_synchronously
@ -50,18 +50,18 @@ class AccountSettingsPage extends StatelessWidget {
if (await showConfirmationDialog(
context,
// ignore: use_build_context_synchronously
AppLocalizations.of(context).settingsResetForConfirmation(_name),
AppLocalizations.of(context).settingsResetForConfirmation(name),
)) {
await _options.reset();
await options.reset();
}
},
tooltip: AppLocalizations.of(context).settingsResetFor(_name),
tooltip: AppLocalizations.of(context).settingsResetFor(name),
icon: const Icon(MdiIcons.cogRefresh),
),
],
),
body: ResultBuilder<NextcloudProvisioningApiUserDetails>(
stream: _userDetailsBloc.userDetails,
stream: userDetailsBloc.userDetails,
builder: (final context, final userDetails) => SettingsList(
categories: [
SettingsCategory(
@ -89,7 +89,7 @@ class AccountSettingsPage extends StatelessWidget {
],
NeonException(
userDetails.error,
onRetry: _userDetailsBloc.refresh,
onRetry: userDetailsBloc.refresh,
),
NeonLinearProgressIndicator(
visible: userDetails.loading,
@ -103,7 +103,7 @@ class AccountSettingsPage extends StatelessWidget {
title: Text(AppLocalizations.of(context).optionsCategoryGeneral),
tiles: [
DropdownButtonSettingsTile(
option: _options.initialApp,
option: options.initialApp,
),
],
),
@ -112,3 +112,4 @@ class AccountSettingsPage extends StatelessWidget {
),
);
}
}

1
packages/neon/neon/lib/src/router.dart

@ -44,7 +44,6 @@ class AccountSettingsRoute extends GoRouteData {
final account = bloc.accounts.value.find(accountid)!;
return AccountSettingsPage(
bloc: bloc,
account: account,
);
}

Loading…
Cancel
Save