Skip to content
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

Define and organize routes for screens #23

Closed
esmaeil-ahmadipour opened this issue Nov 19, 2024 · 1 comment · Fixed by #32
Closed

Define and organize routes for screens #23

esmaeil-ahmadipour opened this issue Nov 19, 2024 · 1 comment · Fixed by #32
Assignees
Labels
feature Add/Create new feature review done Review done and ready to merge

Comments

@esmaeil-ahmadipour
Copy link
Collaborator

esmaeil-ahmadipour commented Nov 19, 2024

Overview

Feature Description

This feature focuses on setting up and connecting routes for all application pages using GoRouter. The pages are designed to be simple, each containing an AppBar and a button for navigating between them. The primary goal is to ensure seamless navigation, including proper handling of back navigation throughout the app.

The objective is to provide developers with a clear and reusable routing structure, enabling efficient task distribution among team members. Each page can then be independently developed while maintaining a cohesive navigation flow. Additionally, this setup serves as a foundation to identify and address any potential issues in the user navigation experience early on.

Click to expand the scenario

Scenario: Testing the Navigation Flow

Imagine a developer opens the app to validate the navigation flow. They start from a main page, which includes a button to navigate to the next page. Upon clicking the button, they are directed to a new page that also contains a button for returning to the previous page.

The developer continues exploring other pages of the app, navigating back and forth between them to ensure that all routes function correctly. They also test the back navigation feature to confirm that the user flow remains consistent and error-free. This process helps uncover any navigation issues early in development, making it easier to address them.

Design Reference

  • Figma Design: Link to Figma Design
    No responsive adjustments needed for now; focus is on navigation structure.
@esmaeil-ahmadipour esmaeil-ahmadipour added the feature Add/Create new feature label Nov 19, 2024
@esmaeil-ahmadipour esmaeil-ahmadipour self-assigned this Nov 19, 2024
@esmaeil-ahmadipour esmaeil-ahmadipour changed the title Define and organize routes for all application screens Define and organize routes for screens Nov 21, 2024
@esmaeil-ahmadipour
Copy link
Collaborator Author

Mohammd @mohamadkenway : Please follow the Conventional Commits standard for writing commit messages. This helps maintain clear and organized commit histories, which is already practiced in other Pactus repositories.

You can also review the team's contribution guidelines in the CONTRIBUTING file of the Pactus-GUI repository.

Note that this file will be updated over time with the team's latest internal standards.

phoenixit99 added a commit that referenced this issue Nov 28, 2024
- Apply consistent code formatting
  • Run dart format on all new files
  • Ensure proper indentation
  • Maintain consistent style

This feature provides a foundation for app-wide navigation using
GoRouter, enabling efficient task distribution among team members
while maintaining a cohesive navigation pattern throughout the app.

The implementation follows a feature-first structure and includes:
• Type-safe route management
• Automatic navigation from splash to home
• Proper handling of back navigation
• Comprehensive test coverage
• Consistent code formatting

Closes #23
@esmaeil-ahmadipour esmaeil-ahmadipour linked a pull request Nov 28, 2024 that will close this issue
phoenixit99 added a commit that referenced this issue Dec 6, 2024
- Add initial route configuration for auth and basic flows
- Configure registration flow routes:
  - Welcome Page
  - Initialize Mode
  - Restoration Seed
  - Confirmation Seed
  - Master Password
  - Validator Config
  - Initializing
  - Finish
- Set up basic flow routes:
  - SplashScreen
  - Password
  - Dashboard

BREAKING CHANGE: New routing architecture implementation
Requires updated navigation handling throughout the app

Resolves: #23
@esmaeil-ahmadipour esmaeil-ahmadipour added the review failed Review not approved, needs changes. label Dec 12, 2024
esmaeil-ahmadipour added a commit that referenced this issue Dec 12, 2024
* feat(router): implement GoRouter navigation system

- Setup GoRouter configuration with initial routes
  • Create app_router.dart with route definitions
  • Define AppRoute enum for type-safe routing
  • Configure MaterialApp.router in main.dart

- Implement core screens with navigation flow
  • Add SplashScreen with 2-second auto-navigation
  • Create HomeScreen with basic layout
  • Setup proper back navigation handling

- Add comprehensive router tests
  • Test route paths and names validation
  • Verify navigation flow from splash to home
  • Ensure proper widget rendering
  • Test back navigation behavior

The implementation follows a feature-first structure and includes:
• Type-safe route management
• Automatic navigation from splash to home
• Proper handling of back navigation
• Comprehensive test coverage

* feat(router): implement GoRouter navigation system

- Apply consistent code formatting
  • Run dart format on all new files
  • Ensure proper indentation
  • Maintain consistent style

This feature provides a foundation for app-wide navigation using
GoRouter, enabling efficient task distribution among team members
while maintaining a cohesive navigation pattern throughout the app.

The implementation follows a feature-first structure and includes:
• Type-safe route management
• Automatic navigation from splash to home
• Proper handling of back navigation
• Comprehensive test coverage
• Consistent code formatting

Closes #23

* update: re organized files and directories

Reorganizes the project structure by moving `app_router` into the inner `src/core` directory to improve modularity and maintainability.

No functionality has been changed in this refactor.

* update(router): implement core navigation structure

- Add initial route configuration for auth and basic flows
- Configure registration flow routes:
  - Welcome Page
  - Initialize Mode
  - Restoration Seed
  - Confirmation Seed
  - Master Password
  - Validator Config
  - Initializing
  - Finish
- Set up basic flow routes:
  - SplashScreen
  - Password
  - Dashboard

BREAKING CHANGE: New routing architecture implementation
Requires updated navigation handling throughout the app

Resolves: #23

* no feat(router): implement GoRouter navigation system

conflict: resolved conflicts

* update(router): implement core navigation structure

- Separate to register route and basic route
- Add gap dependency
- remove unused code in language_bloc
- update code in route_name for easy-to-read

* update(router): implement core navigation structure

- implement test case

* update(core:router): changing `AppRoute` get method's

- remove `routeName` get method
- rename `routePath` get method to `path`

* fix(core:router): fix `basic routes` for correctly action of back button

* fix(router/features): fix `register routes` for correctly action of back button

---------

Co-authored-by: Esmaeil Ahmadipour <[email protected]>
@esmaeil-ahmadipour esmaeil-ahmadipour added review done Review done and ready to merge and removed review failed Review not approved, needs changes. labels Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Add/Create new feature review done Review done and ready to merge
Projects
None yet
3 participants