Fix onboarding gate + tab icons + trim New-card screen
CI / policy (push) Has been cancelled
CI / backend (push) Has been cancelled
CI / profile (push) Has been cancelled
CI / mobile (push) Has been cancelled

- Onboarding gate: the `hydrated` flag never flipped (onRehydrateStorage hit the
  store const during synchronous MMKV hydration), leaving a blank null gate.
  Dropped the flag; gate directly on `onboarded` (MMKV hydrates synchronously).
- Tab bar: removed the item padding that clipped the icons; clean taller bar
  with safe-area bottom padding.
- New-card screen: header title "Make your card" (centered), removed the body
  heading and all the detail fields + back-of-card links (captured in
  onboarding) and the Publish button (returns later on the flipped card). Keeps
  Take/Choose photo + AI scene/video + Save.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
Omar Sobh
2026-06-05 23:46:12 -05:00
co-authored by Claude Opus 4.8
parent 8865dc9683
commit e77e812609
3 changed files with 9 additions and 31 deletions
+3 -19
View File
@@ -269,8 +269,9 @@ export default function CardEditorScreen() {
return (
<ScrollView style={styles.root} contentContainerStyle={styles.content}>
<Stack.Screen options={{ title: cardId ? "Edit card" : "New card" }} />
<Text style={styles.h1}>{cardId ? "Edit your card" : "Make your card"}</Text>
<Stack.Screen
options={{ title: cardId ? "Edit card" : "Make your card", headerTitleAlign: "center" }}
/>
{videoUri ? (
<Video
@@ -309,14 +310,6 @@ export default function CardEditorScreen() {
</Pressable>
</View>
<Text style={styles.sectionLabel}>Details · prefilled from your profile</Text>
<Field label="Name" value={name} onChangeText={setName} />
<Field label="Title" value={title} onChangeText={setTitle} />
<Field label="QR link" value={url} onChangeText={setUrl} autoCapitalize="none" />
<Text style={styles.sectionLabel}>Back of card · scannable links</Text>
<LinksEditor links={links} onChange={setLinks} />
<Pressable
style={[styles.cta, (!media || saving) && styles.ctaDisabled]}
disabled={!media || saving}
@@ -325,15 +318,6 @@ export default function CardEditorScreen() {
{saving ? <ActivityIndicator color="#fff" /> : <Text style={styles.ctaText}>Save card</Text>}
</Pressable>
<Pressable
style={[styles.publishBtn, saving && styles.ctaDisabled]}
disabled={saving}
onPress={goPublish}
>
<MaterialCommunityIcons name="web" size={20} color="#f5f5f7" />
<Text style={styles.photoText}>Publish to web · AI welcome</Text>
</Pressable>
{cardId && (
<Pressable onPress={onDelete}>
<Text style={styles.deleteText}>Delete card</Text>