2026-07-02 14:34:19 +05:30

38 lines
1.0 KiB
TypeScript

import React from 'react';
import { View, Text, TouchableOpacity } from 'react-native';
import { useAppTheme } from '@theme';
import { getStyles } from './emptyState.styles';
interface EmptyStateProps {
icon?: React.ReactNode;
title: string;
subtitle?: string;
actionLabel?: string;
onAction?: () => void;
}
export const EmptyState: React.FC<EmptyStateProps> = ({
icon,
title,
subtitle,
actionLabel,
onAction,
}) => {
const { colors } = useAppTheme();
const styles = getStyles(colors);
return (
<View style={styles.container}>
{icon && <View style={styles.iconContainer}>{icon}</View>}
<Text style={styles.title}>{title}</Text>
{subtitle ? <Text style={styles.subtitle}>{subtitle}</Text> : null}
{actionLabel && onAction ? (
<TouchableOpacity style={styles.button} activeOpacity={0.8} onPress={onAction}>
<Text style={styles.buttonText}>{actionLabel}</Text>
</TouchableOpacity>
) : null}
</View>
);
};
export default EmptyState;