You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bring the mobile auth screens up to the web app's behavior and add native polish.
Validation parity (matches web/src/pages/Login.tsx + Register.tsx):
- Shared auth store now surfaces errors via apiErrorMessage() (network/CORS,
5xx, misconfigured-URL hints) instead of a bare err.response.data.error —
same message logic the web pages use.
- Login: Sign-in gated on a valid email shape + non-empty password (RN
equivalent of `type=email required`), with an inline invalid-email hint.
- Register: adds the missing Confirm-password field and the same two checks
in the same order/copy — "Passwords do not match", then the 8-char rule.
Stretchy pull-down hero (AuthScaffold):
- ScrollView → Animated.ScrollView with bounces re-enabled; on overscroll the
gradient background stretches from its top edge (transformOrigin, RN 0.81+)
and is pinned to the viewport so the notch stays covered and the sheet
overlap is preserved at every pull depth. Watermark gets a parallax drift.
Boxed error alerts (authui AuthError):
- Reusable alert mirroring web's .alert-error (tinted bg, error border,
AlertCircle icon), with a 200ms fade/slide entrance; used in both screens.
Light stays the default; all of the above verified in light + dark via the
web driver. type-check clean, shared tests green.
0 commit comments