diff --git a/lib/pages/chat/pinned_events.dart b/lib/pages/chat/pinned_events.dart index 8594afec..c72ff1cc 100644 --- a/lib/pages/chat/pinned_events.dart +++ b/lib/pages/chat/pinned_events.dart @@ -60,82 +60,68 @@ class PinnedEvents extends StatelessWidget { ? snapshot.data?.last : null; - if (event != null && pinnedEvents != null) { - final fontSize = - AppConfig.messageFontSize * AppConfig.fontSizeFactor; - return Material( - color: Theme.of(context).appBarTheme.backgroundColor, - elevation: Theme.of(context).appBarTheme.elevation ?? 10, - shadowColor: Theme.of(context).appBarTheme.shadowColor, - child: InkWell( - onTap: () => _displayPinnedEventsDialog( - context, - pinnedEvents, - ), - child: Row( - children: [ - IconButton( - splashRadius: 20, - iconSize: 20, - icon: const Icon(Icons.push_pin), - tooltip: L10n.of(context)!.unpin, - onPressed: controller.room - ?.canSendEvent(EventTypes.RoomPinnedEvents) ?? - false - ? () => controller.unpinEvent(event.eventId) - : null, - ), - Expanded( - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 4.0), - child: LinkText( - text: event.getLocalizedBody( - MatrixLocals(L10n.of(context)!), - withSenderNamePrefix: true, - hideReply: true, - ), - maxLines: 2, - textStyle: TextStyle( - overflow: TextOverflow.ellipsis, - fontSize: fontSize, - decoration: event.redacted - ? TextDecoration.lineThrough - : null, - ), - linkStyle: TextStyle( - color: Theme.of(context) - .textTheme - .bodyText1 - ?.color - ?.withAlpha(150), - fontSize: fontSize, - decoration: TextDecoration.underline, - ), - onLinkTap: (url) => - UrlLauncher(context, url).launchUrl(), + if (event == null || pinnedEvents == null) { + return Container(); + } + + final fontSize = AppConfig.messageFontSize * AppConfig.fontSizeFactor; + return Material( + color: Theme.of(context).appBarTheme.backgroundColor, + elevation: Theme.of(context).appBarTheme.elevation ?? 10, + shadowColor: Theme.of(context).appBarTheme.shadowColor, + child: InkWell( + onTap: () => _displayPinnedEventsDialog( + context, + pinnedEvents, + ), + child: Row( + children: [ + IconButton( + splashRadius: 20, + iconSize: 20, + icon: const Icon(Icons.push_pin), + tooltip: L10n.of(context)!.unpin, + onPressed: controller.room + ?.canSendEvent(EventTypes.RoomPinnedEvents) ?? + false + ? () => controller.unpinEvent(event.eventId) + : null, + ), + Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: LinkText( + text: event.getLocalizedBody( + MatrixLocals(L10n.of(context)!), + withSenderNamePrefix: true, + hideReply: true, ), + maxLines: 2, + textStyle: TextStyle( + overflow: TextOverflow.ellipsis, + fontSize: fontSize, + decoration: event.redacted + ? TextDecoration.lineThrough + : null, + ), + linkStyle: TextStyle( + color: Theme.of(context) + .textTheme + .bodyText1 + ?.color + ?.withAlpha(150), + fontSize: fontSize, + decoration: TextDecoration.underline, + ), + onLinkTap: (url) => + UrlLauncher(context, url).launchUrl(), ), ), - ], - ), + ), + ], ), - ); - } else if (snapshot.hasError) { - Logs().e('Error loading pinned events.', snapshot.error); - return ListTile( - tileColor: Theme.of(context).secondaryHeaderColor, - title: Text(L10n.of(context)!.pinnedEventsError)); - } else { - return ListTile( - tileColor: Theme.of(context).secondaryHeaderColor, - title: const Center( - child: SizedBox.square( - dimension: 24, - child: CircularProgressIndicator(), - ), - ), - ); - } + ), + ); }); } }