Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Refactor/app shell #92

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
fulleni merged 26 commits into main from refactor/app-shell
Sep 25, 2025
Merged
Changes from 1 commit
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
c2eb002
feat(l10n): add Arabic and English translations for about icon and cl...
fulleni Sep 25, 2025
3a32342
feat(app_shell): enhance navigation rail and simplify app bar
fulleni Sep 25, 2025
c7ada33
refactor(app_configuration): improve app configuration page layout
fulleni Sep 25, 2025
97ebae9
refactor(content_management): improve code formatting and structure
fulleni Sep 25, 2025
61187cf
style: format
fulleni Sep 25, 2025
d966b03
style: format
fulleni Sep 25, 2025
619dc4b
feat(settings): add about icon to settings page
fulleni Sep 25, 2025
9a4b38a
feat(ui): add about icon widget
fulleni Sep 25, 2025
2c5b818
feat(ui): add user navigation rail footer widget
fulleni Sep 25, 2025
241696a
feat(shared): add exports for new widgets
fulleni Sep 25, 2025
066fed5
refactor(app_shell): restructure navigation rail and app bar
fulleni Sep 25, 2025
6f532dd
feat(app_configuration): move about icon to app bar title
fulleni Sep 25, 2025
86b857e
feat(ui): add about icon to app bar titles and update user navigation...
fulleni Sep 25, 2025
a64cdab
style(app_configuration): adjust title spacing and remove font style
fulleni Sep 25, 2025
f972771
style(content_management): increase spacing between title and icon
fulleni Sep 25, 2025
d314ad0
style(settings): increase spacing between title and icon
fulleni Sep 25, 2025
6f87789
feat(AboutIcon): customize icon color and size
fulleni Sep 25, 2025
657623e
feat(app_shell): refactor navigation rail and add settings/logout tiles
fulleni Sep 25, 2025
11a5173
refactor: remove unused UserNavigationRailFooter widget
fulleni Sep 25, 2025
850f704
feat(navigator): extend navigator in more screen sizes
fulleni Sep 25, 2025
e8150dc
refactor(widgets): remove unused export
fulleni Sep 25, 2025
3c38f6d
style: misc
fulleni Sep 25, 2025
02502fb
style(content_management): decrease column spacing in headlines page
fulleni Sep 25, 2025
e51691f
style(content_management): improve layout and spacing of action buttons
fulleni Sep 25, 2025
ff69e0d
style(content_management): adjust padding for filter pages
fulleni Sep 25, 2025
016306c
style(spacing): adjust spacing between title and About icon
fulleni Sep 25, 2025
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
Prev Previous commit
Next Next commit
feat(ui): add user navigation rail footer widget
- Create a new widget for displaying user-specific actions in the navigation rail footer
- Include settings and sign-out options
- Implement localization support for labels
- Add routing for settings page and logout functionality
  • Loading branch information
fulleni committed Sep 25, 2025
commit 2c5b818b4905b6550cc4318814fc2bfba87df023
70 changes: 70 additions & 0 deletions lib/shared/widgets/user_navigation_rail_footer.dart
View file Open in desktop
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/app/bloc/app_bloc.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/l10n/l10n.dart';
import 'package:flutter_news_app_web_dashboard_full_source_code/router/routes.dart';
import 'package:go_router/go_router.dart';
import 'package:ui_kit/ui_kit.dart';

/// {@template user_navigation_rail_footer}
/// A widget designed to be placed at the bottom of a [NavigationRail]
/// to display user-specific actions like settings and sign-out.
/// {@endtemplate}
class UserNavigationRailFooter extends StatelessWidget {
/// {@macro user_navigation_rail_footer}
const UserNavigationRailFooter({super.key});

@override
Widget build(BuildContext context) {
final l10n = AppLocalizationsX(context).l10n;
final theme = Theme.of(context);

return Container(
padding: const EdgeInsets.symmetric(
horizontal: AppSpacing.sm,
vertical: AppSpacing.md,
),
decoration: BoxDecoration(
color: theme.colorScheme.surfaceContainerHighest,
borderRadius: BorderRadius.circular(AppSpacing.sm),
),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
// Settings Tile
ListTile(
leading: Icon(
Icons.settings,
color: theme.colorScheme.onSurface,
),
title: Text(
l10n.settings,
style: theme.textTheme.bodyMedium?.copyWith(
color: theme.colorScheme.onSurface,
),
),
onTap: () {
context.goNamed(Routes.settingsName);
},
),
// Sign Out Tile
ListTile(
leading: Icon(
Icons.logout,
color: theme.colorScheme.error,
),
title: Text(
l10n.signOut,
style: theme.textTheme.bodyMedium?.copyWith(
color: theme.colorScheme.error,
),
),
onTap: () {
context.read<AppBloc>().add(const AppLogoutRequested());
},
),
],
),
);
}
}

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /