feat(mobile): improve home retrieval summary

This commit is contained in:
saravanakumardb1 2026-03-10 09:29:36 -07:00
parent a748d78551
commit 02f8193b5f
2 changed files with 31 additions and 1 deletions

View File

@ -56,7 +56,7 @@ Stack: React Native + Expo + TypeScript
# Done When # Done When
- [ ] Mobile is useful for capture and retrieval - [x] Mobile is useful for capture and retrieval
- [x] Mobile supports lightweight editing and approvals for MVP - [x] Mobile supports lightweight editing and approvals for MVP
- [ ] Mobile does not try to duplicate dense web-only workflows - [ ] Mobile does not try to duplicate dense web-only workflows
@ -73,6 +73,7 @@ Stack: React Native + Expo + TypeScript
- token-based theme wiring via `@bytelyst/design-tokens/tokens.json` - token-based theme wiring via `@bytelyst/design-tokens/tokens.json`
- Zustand-backed auth, notes, and workspace stores were added for first-pass mobile state management. - Zustand-backed auth, notes, and workspace stores were added for first-pass mobile state management.
- Home/search/capture now use active workspace context for more useful mobile browsing. - Home/search/capture now use active workspace context for more useful mobile browsing.
- Home now includes a workspace retrieval summary block to make the mobile surface more useful at a glance.
- Note detail now supports lightweight local editing plus basic artifact metadata viewing. - Note detail now supports lightweight local editing plus basic artifact metadata viewing.
- Inbox now supports simple approval/reject flows and a lightweight activity feed. - Inbox now supports simple approval/reject flows and a lightweight activity feed.
- Capture now surfaces offline queue readiness details for the current mobile scaffold. - Capture now surfaces offline queue readiness details for the current mobile scaffold.

View File

@ -26,12 +26,18 @@ export default function HomeScreen() {
})), })),
[activeWorkspaceName, notes] [activeWorkspaceName, notes]
); );
const visibleCount = recentNotes.length;
return ( return (
<ScrollView contentContainerStyle={styles.container}> <ScrollView contentContainerStyle={styles.container}>
<Text style={styles.eyebrow}>Recent notes</Text> <Text style={styles.eyebrow}>Recent notes</Text>
<Text style={styles.title}>Capture and retrieve fast</Text> <Text style={styles.title}>Capture and retrieve fast</Text>
<Text style={styles.subtitle}>Mobile MVP focuses on recent notes, quick capture, search, and lightweight review.</Text> <Text style={styles.subtitle}>Mobile MVP focuses on recent notes, quick capture, search, and lightweight review.</Text>
<View style={styles.summaryCard}>
<Text style={styles.summaryLabel}>Workspace</Text>
<Text style={styles.summaryValue}>{activeWorkspaceName ?? 'All workspaces'}</Text>
<Text style={styles.summaryMeta}>{visibleCount} visible notes ready for quick retrieval</Text>
</View>
<ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.workspaceRow}> <ScrollView horizontal showsHorizontalScrollIndicator={false} contentContainerStyle={styles.workspaceRow}>
{workspaces.map((workspace: MobileWorkspace) => { {workspaces.map((workspace: MobileWorkspace) => {
const isActive = workspace.id === activeWorkspaceId; const isActive = workspace.id === activeWorkspaceId;
@ -111,6 +117,29 @@ const styles = StyleSheet.create({
workspaceChipTextActive: { workspaceChipTextActive: {
color: colors.textPrimary, color: colors.textPrimary,
}, },
summaryCard: {
backgroundColor: colors.surfaceCard,
borderWidth: 1,
borderColor: colors.borderDefault,
borderRadius: 16,
padding: 16,
gap: 6,
},
summaryLabel: {
color: colors.textSecondary,
fontSize: 13,
textTransform: 'uppercase',
letterSpacing: 1,
},
summaryValue: {
color: colors.textPrimary,
fontSize: 20,
fontWeight: '700',
},
summaryMeta: {
color: colors.textSecondary,
fontSize: 14,
},
card: { card: {
backgroundColor: colors.surfaceCard, backgroundColor: colors.surfaceCard,
borderWidth: 1, borderWidth: 1,