feat(mobile): improve home retrieval summary
This commit is contained in:
parent
a748d78551
commit
02f8193b5f
@ -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.
|
||||||
|
|||||||
@ -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,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user