Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/src/app/pages/thunder_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -486,6 +486,7 @@ class _ThunderState extends State<Thunder> {
postSortType: state.siteResponse?.myUser?.localUserView.localUser.defaultSortType ?? feedCubit.state.defaultPostSortType,
scaffoldStateKey: scaffoldStateKey,
showHidden: feedCubit.state.showHiddenPosts,
isActive: selectedPageIndex == 0,
);
},
),
Expand Down
24 changes: 21 additions & 3 deletions lib/src/features/feed/presentation/pages/feed_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ class FeedPage extends StatefulWidget {
this.username,
this.scaffoldStateKey,
this.showHidden = false,
this.isActive = false,
});

/// The type of feed to display.
Expand Down Expand Up @@ -87,6 +88,9 @@ class FeedPage extends StatefulWidget {
/// Whether to show hidden posts in the feed
final bool showHidden;

/// Whether this feed page is currently active (visible)
final bool isActive;

@override
State<FeedPage> createState() => _FeedPageState();
}
Expand Down Expand Up @@ -131,7 +135,11 @@ class _FeedPageState extends State<FeedPage> with AutomaticKeepAliveClientMixin<

return BlocProvider.value(
value: bloc,
child: FeedView(scaffoldStateKey: widget.scaffoldStateKey, feedType: widget.feedType),
child: FeedView(
scaffoldStateKey: widget.scaffoldStateKey,
feedType: widget.feedType,
isActive: widget.isActive,
),
);
}

Expand All @@ -150,20 +158,27 @@ class _FeedPageState extends State<FeedPage> with AutomaticKeepAliveClientMixin<
reset: true,
showHidden: widget.showHidden,
)),
child: FeedView(scaffoldStateKey: widget.scaffoldStateKey, feedType: widget.feedType),
child: FeedView(
scaffoldStateKey: widget.scaffoldStateKey,
feedType: widget.feedType,
isActive: widget.isActive,
),
);
}
}

class FeedView extends StatefulWidget {
const FeedView({super.key, this.scaffoldStateKey, this.feedType});
const FeedView({super.key, this.scaffoldStateKey, this.feedType, this.isActive = false});

/// The scaffold key which holds the drawer
final GlobalKey<ScaffoldState>? scaffoldStateKey;

/// The type of feed to display
final FeedType? feedType;

/// Whether this feed view is currently active
final bool isActive;

@override
State<FeedView> createState() => _FeedViewState();
}
Expand Down Expand Up @@ -512,6 +527,9 @@ class _FeedViewState extends State<FeedView> {
}

FutureOr<bool> _handleBack(bool stopDefaultButtonEvent, RouteInfo info) async {
// If the feed is not active, we should not be intercepting the back button
if (!widget.isActive) return false;

ProfileBloc authBloc = context.read<ProfileBloc>();
FeedBloc feedBloc = context.read<FeedBloc>();
final feedCubit = context.read<FeedPreferencesCubit>();
Expand Down
8 changes: 4 additions & 4 deletions lib/src/shared/full_name_widgets.dart
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,10 @@ class UserFullNameWidget extends StatelessWidget {
final prefix = generateUserFullNamePrefix(outerContext, name, displayName, userSeparator: userSeparator, useDisplayName: useDisplayName);
final suffix = generateUserFullNameSuffix(outerContext, instance, userSeparator: userSeparator);

final userNameThickness = this.userNameThickness ?? outerContext!.select<ThemePreferencesCubit, NameThickness>((cubit) => cubit.state.userFullNameUserNameThickness);
final userNameColor = this.userNameColor ?? outerContext!.select<ThemePreferencesCubit, NameColor>((cubit) => cubit.state.userFullNameUserNameColor);
final instanceNameThickness = this.instanceNameThickness ?? outerContext!.select<ThemePreferencesCubit, NameThickness>((cubit) => cubit.state.userFullNameInstanceNameThickness);
final instanceNameColor = this.instanceNameColor ?? outerContext!.select<ThemePreferencesCubit, NameColor>((cubit) => cubit.state.userFullNameInstanceNameColor);
final userNameThickness = this.userNameThickness ?? outerContext!.read<ThemePreferencesCubit>().state.userFullNameUserNameThickness;
final userNameColor = this.userNameColor ?? outerContext!.read<ThemePreferencesCubit>().state.userFullNameUserNameColor;
final instanceNameThickness = this.instanceNameThickness ?? outerContext!.read<ThemePreferencesCubit>().state.userFullNameInstanceNameThickness;
final instanceNameColor = this.instanceNameColor ?? outerContext!.read<ThemePreferencesCubit>().state.userFullNameInstanceNameColor;

final textStyle = this.textStyle ?? Theme.of(outerContext!).textTheme.bodyMedium;
final transformColor = this.transformColor ?? (color) => color;
Expand Down