diff --git a/docs/roadmaps/04_MOBILE_ROADMAP.md b/docs/roadmaps/04_MOBILE_ROADMAP.md index 2d34ade..c7dcbd6 100644 --- a/docs/roadmaps/04_MOBILE_ROADMAP.md +++ b/docs/roadmaps/04_MOBILE_ROADMAP.md @@ -56,7 +56,7 @@ Stack: React Native + Expo + TypeScript # 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 - [ ] 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` - 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 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. - Inbox now supports simple approval/reject flows and a lightweight activity feed. - Capture now surfaces offline queue readiness details for the current mobile scaffold. diff --git a/mobile/src/app/(tabs)/index.tsx b/mobile/src/app/(tabs)/index.tsx index 6d46626..b553008 100644 --- a/mobile/src/app/(tabs)/index.tsx +++ b/mobile/src/app/(tabs)/index.tsx @@ -26,12 +26,18 @@ export default function HomeScreen() { })), [activeWorkspaceName, notes] ); + const visibleCount = recentNotes.length; return ( Recent notes Capture and retrieve fast Mobile MVP focuses on recent notes, quick capture, search, and lightweight review. + + Workspace + {activeWorkspaceName ?? 'All workspaces'} + {visibleCount} visible notes ready for quick retrieval + {workspaces.map((workspace: MobileWorkspace) => { const isActive = workspace.id === activeWorkspaceId; @@ -111,6 +117,29 @@ const styles = StyleSheet.create({ workspaceChipTextActive: { 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: { backgroundColor: colors.surfaceCard, borderWidth: 1,