arch-atlas

Screens

Login · Register · Forgot

presentation

Overview

Three Flutter screens — LoginScreen, RegisterScreen, ForgotPasswordScreen — that bind to AuthController and submit the form payload. UI-only: no business logic.

Screens

Loginwireframe
default

Email + password with 'Forgot?' link — the app's front door.

Login — submittingwireframe
loading

Button swaps to a spinner; inputs disabled to block double-submit.

Login — invalid credentialswireframe
error

Neutral error banner — never reveals which field was wrong.

Registration formwireframe
default

Live password-strength meter is UI-only — real rules live in the use case.

Reset passwordwireframe
default

Single email field; confirmation is identical for known and unknown emails.

Set new passwordwireframe
default

Reached via the email deep link — strength meter mirrors registration.

Profile drawer — sign outwireframe
default

Sign-out entry point. Capture pending — drop the PNG to light it up.

User Flow

  1. Screen mounts → reads AuthController via Get.find().
  2. Form validates locally (TextFormField validators) before calling the controller.
  3. While controller.isBusy → button shows a spinner, fields disable.
  4. Errors render via Get.snackbar from the controller; success navigates away.

Cases & Edge Cases

  • Keyboard-driven 'submit on enter' wired with TextInputAction.next/done.
  • Forgot-password screen always shows the same neutral confirmation (anti-enumeration).
  • Register screen shows a live password-strength meter (UI-only).

Code References

  • lib/features/auth/presentation/screens/login_screen.dart
  • lib/features/auth/presentation/screens/register_screen.dart
  • lib/features/auth/presentation/screens/forgot_password_screen.dart

API Calls

Empty — fill this in later. Open the manifest and add content here.

Notes

Screens never import use cases or repositories directly. The controller is the only door in.