From fcf9e70d54bd737d2dea848d25314120f37db503 Mon Sep 17 00:00:00 2001 From: soryu Date: Sun, 18 Jan 2026 02:58:27 +0000 Subject: [WIP] Heartbeat checkpoint - 2026-01-18 02:58:27 UTC --- apps/mobile/components/EmptyState.tsx | 53 +++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 apps/mobile/components/EmptyState.tsx (limited to 'apps/mobile/components/EmptyState.tsx') diff --git a/apps/mobile/components/EmptyState.tsx b/apps/mobile/components/EmptyState.tsx new file mode 100644 index 0000000..0707f91 --- /dev/null +++ b/apps/mobile/components/EmptyState.tsx @@ -0,0 +1,53 @@ +import React from 'react'; +import { View, Text, StyleSheet, useColorScheme } from 'react-native'; +import { Ionicons } from '@expo/vector-icons'; +import { Colors } from '../constants/Colors'; + +interface EmptyStateProps { + icon?: keyof typeof Ionicons.glyphMap; + title: string; + message?: string; +} + +export function EmptyState({ + icon = 'cube-outline', + title, + message, +}: EmptyStateProps) { + const colorScheme = useColorScheme() ?? 'light'; + const colors = Colors[colorScheme]; + + return ( + + + {title} + {message && ( + + {message} + + )} + + ); +} + +const styles = StyleSheet.create({ + container: { + flex: 1, + alignItems: 'center', + justifyContent: 'center', + paddingHorizontal: 32, + paddingVertical: 64, + }, + title: { + fontSize: 18, + fontWeight: '600', + marginTop: 16, + textAlign: 'center', + }, + message: { + fontSize: 14, + marginTop: 8, + textAlign: 'center', + lineHeight: 20, + }, +}); -- cgit v1.2.3