import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:neon/blocs.dart'; import 'package:neon/l10n/localizations.dart'; import 'package:neon/models.dart'; import 'package:neon/utils.dart'; import 'package:neon_notifications/neon_notifications.dart'; import 'package:provider/provider.dart'; part 'routes.g.dart'; @TypedGoRoute( path: '$appsRoutePrefix${AppIDs.notifications}', name: AppIDs.notifications, ) @immutable class NotificationsAppRoute extends NeonAppRoute { const NotificationsAppRoute(); @override Widget build(final BuildContext context, final GoRouterState state) { final accountsBloc = Provider.of(context, listen: false); final appsBloc = accountsBloc.activeAppsBloc; final app = appsBloc.notificationsAppImplementation.value.data!; final accounts = accountsBloc.accounts.value; final account = accountsBloc.activeAccount.value!; Widget title = Text(AppLocalizations.of(context).appImplementationName(AppIDs.notifications)); if (accounts.length > 1) { title = Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ title, Text( account.humanReadableID, style: Theme.of(context).textTheme.bodySmall, ), ], ); } final page = Scaffold( resizeToAvoidBottomInset: false, appBar: AppBar( leading: BackButton( onPressed: appsBloc.navigateActiveApp, ), title: title, ), body: const NotificationsMainPage(), ); return Provider( create: (final context) => app.getBloc(account), child: page, ); } }