Add global search, in-app + push notifications, and fix card/beneficiary/scroll issues

- Global feature search for the user app, wired to the home search icon
- Notifications screen: swipe-to-delete, vanish animation, unread badge,
  and Notifee-backed foreground + background (scheduled) OS notifications
- Fix Add Beneficiary save (single source of truth via beneficiaries slice)
- Fix Cards tab scroll freeze and bottom blank space (use ScreenShell scroll)
- User-friendly toast copy across the app
- Android build tuning: parallel/caching/JVM G1 args, mobile-only ABIs

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Abin Toppo
2026-06-02 16:36:27 +05:30
co-authored by Claude Opus 4.8
parent d7907e1d64
commit 58af541536
48 changed files with 1773 additions and 157 deletions
+6 -6
View File
@@ -36,12 +36,12 @@ export default function LoginScreen(props: Readonly<Props>) {
const handleForgotPassword = () => {
haptics.selection();
toast('Redirecting to secure reset channel...', 'info');
toast('Resetting your password', 'info', 'We are taking you to reset your password.');
};
const handleSignUp = () => {
haptics.selection();
toast('Initializing onboarding sequence...', 'info');
toast('Creating your account', 'info', 'We are taking you to open a new account.');
};
const handleContinue = async () => {
@@ -55,11 +55,11 @@ export default function LoginScreen(props: Readonly<Props>) {
await secureStorage.saveSession(tokens);
dispatch(authActions.authenticate(tokens));
haptics.success();
toast('Neural bridge established', 'success');
toast('Signed in', 'success', 'Welcome back to your account.');
return;
} catch {
haptics.error();
toast('Access Denied', 'error', 'Authorization failed. Retry handshake.');
toast('Sign-in failed', 'error', 'We could not verify your details. Please check and try again.');
}
};
@@ -68,7 +68,7 @@ export default function LoginScreen(props: Readonly<Props>) {
const success = await promptBiometric();
if (!success) {
toast('Biometric scan aborted', 'info');
toast('Biometric sign-in cancelled', 'info', 'You can try again or sign in with your password.');
return;
}
@@ -82,7 +82,7 @@ export default function LoginScreen(props: Readonly<Props>) {
await secureStorage.saveSession(tokens);
dispatch(authActions.authenticate(tokens));
haptics.success();
toast('Synapse link verified', 'success');
toast('Signed in', 'success', 'Your identity was confirmed. Welcome back.');
};
return (