feat(mobile): Netralax landing screen with runtime version + nav smoke test

This commit is contained in:
byGalax
2026-05-13 23:36:31 +02:00
parent 5e483368ec
commit 574436ab71
+32 -12
View File
@@ -1,17 +1,29 @@
// Landing / Login screen.
import * as Application from 'expo-application';
import { Link } from 'expo-router';
import { Pressable, StyleSheet, Text, View } from 'react-native';
// Phase 0 landing screen. Just enough to prove the app boots and routes:
// * Netralax brand wordmark (replaces the previous "ChatApp" string).
// * Runtime version from expo-application so we can spot stale builds
// on a TestFlight tester's device at a glance.
// * Placeholder nav link into (app)/chats — exercises Expo Router so a
// routing regression shows up here instead of mid-Phase-1.
//
// Milestone 1 TODO:
// - Show app logo + "Enter your email" field.
// - On submit, call shared/auth requestMagicLink(email).
// - Handle deep link return in app/_layout.tsx (or a dedicated auth callback route).
import { StyleSheet, Text, View } from 'react-native';
// Phase 1 replaces this with the actual magic-link login form.
export default function Landing() {
const version = Application.nativeApplicationVersion ?? '0.0.0';
return (
<View style={styles.container}>
<Text style={styles.title}>ChatApp</Text>
<Text style={styles.subtitle}>Login placeholder magic link flow goes here.</Text>
<Text style={styles.title}>Netralax</Text>
<Text style={styles.subtitle}>Phase 0 Deployment-Fundament</Text>
<Text style={styles.version}>v{version}</Text>
<Link href="/(app)/chats" asChild>
<Pressable style={styles.button}>
<Text style={styles.buttonText}>Weiter (Smoke-Test)</Text>
</Pressable>
</Link>
</View>
);
}
@@ -24,6 +36,14 @@ const styles = StyleSheet.create({
backgroundColor: '#0b0b0f',
padding: 24,
},
title: { color: '#fff', fontSize: 28, fontWeight: '600' },
subtitle: { color: '#9ca3af', marginTop: 8, textAlign: 'center' },
title: { color: '#fff', fontSize: 32, fontWeight: '700', letterSpacing: 1 },
subtitle: { color: '#9ca3af', marginTop: 8, marginBottom: 4 },
version: { color: '#6b7280', fontSize: 12, marginBottom: 32 },
button: {
backgroundColor: '#5865f2',
paddingHorizontal: 24,
paddingVertical: 14,
borderRadius: 12,
},
buttonText: { color: '#fff', fontWeight: '600', fontSize: 15 },
});