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'; part of '../../neon.dart';
class AccountSettingsPage extends StatelessWidget { class AccountSettingsPage extends StatelessWidget {
AccountSettingsPage({ const AccountSettingsPage({
required this.bloc,
required this.account, required this.account,
super.key, super.key,
}); });
final AccountsBloc bloc;
final Account account; final Account account;
late final _options = bloc.getOptionsFor(account);
late final _userDetailsBloc = bloc.getUserDetailsBlocFor(account);
late final _name = account.client.humanReadableID;
@override @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, resizeToAvoidBottomInset: false,
appBar: AppBar( appBar: AppBar(
title: Text(_name), title: Text(name),
actions: [ actions: [
IconButton( IconButton(
onPressed: () async { onPressed: () async {
@ -28,9 +28,9 @@ class AccountSettingsPage extends StatelessWidget {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
AppLocalizations.of(context).accountOptionsRemoveConfirm(account.client.humanReadableID), 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) { if (isActive) {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
@ -50,18 +50,18 @@ class AccountSettingsPage extends StatelessWidget {
if (await showConfirmationDialog( if (await showConfirmationDialog(
context, context,
// ignore: use_build_context_synchronously // 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), icon: const Icon(MdiIcons.cogRefresh),
), ),
], ],
), ),
body: ResultBuilder<NextcloudProvisioningApiUserDetails>( body: ResultBuilder<NextcloudProvisioningApiUserDetails>(
stream: _userDetailsBloc.userDetails, stream: userDetailsBloc.userDetails,
builder: (final context, final userDetails) => SettingsList( builder: (final context, final userDetails) => SettingsList(
categories: [ categories: [
SettingsCategory( SettingsCategory(
@ -89,7 +89,7 @@ class AccountSettingsPage extends StatelessWidget {
], ],
NeonException( NeonException(
userDetails.error, userDetails.error,
onRetry: _userDetailsBloc.refresh, onRetry: userDetailsBloc.refresh,
), ),
NeonLinearProgressIndicator( NeonLinearProgressIndicator(
visible: userDetails.loading, visible: userDetails.loading,
@ -103,7 +103,7 @@ class AccountSettingsPage extends StatelessWidget {
title: Text(AppLocalizations.of(context).optionsCategoryGeneral), title: Text(AppLocalizations.of(context).optionsCategoryGeneral),
tiles: [ tiles: [
DropdownButtonSettingsTile( DropdownButtonSettingsTile(
option: _options.initialApp, option: options.initialApp,
), ),
], ],
), ),
@ -111,4 +111,5 @@ 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)!; final account = bloc.accounts.value.find(accountid)!;
return AccountSettingsPage( return AccountSettingsPage(
bloc: bloc,
account: account, account: account,
); );
} }

Loading…
Cancel
Save