SignIn Screen

The SignIn screen is the first point of user interaction for authentication in the SailPilot app. It provides users with a form to enter their credentials and access the application.

Layout and Widgets

  • Text Fields: Includes email and password fields with respective `TextEditingController`s for user input.

  • PrimaryButton: A custom button widget used for the sign-in action. It is wrapped inside a ShakeWidget to provide a shake animation on certain conditions (like invalid credentials).

  • Social Sign-In Options: Offers alternative sign-in methods using social media accounts (Google, Facebook, Apple).

Authentication Process

Upon tapping the sign-in button, the app: - Validates the input fields to ensure they are not empty. - Calls the login method from AuthService to authenticate the user. - If authentication is successful, updates the AuthState and navigates to the LandingPage. - If there are issues (like invalid credentials), triggers a shake animation and clears the input fields.

Dark Mode Support

The screen adjusts its background color and other UI elements based on the current theme (light or dark mode).

User Feedback

  • Displays a loading indicator during the authentication process.

  • Shows a SnackBar with an error message if the authentication fails or if the input fields are empty.