/* * File: CaseQueue.tsx * Description: Component to display a list of cases in the queue * Design & Developed by Tech4Biz Solutions * Copyright (c) Spurrin Innovations. All rights reserved. */ import React from 'react'; import { View, Text, FlatList, StyleSheet, TouchableOpacity } from 'react-native'; import { Card, InfoCard } from '../../../../shared/src/components/Card'; import { CustomIcon } from '../../../../shared/src/components/Icons'; import { Colors, Spacing, Typography } from '../../../../shared/src/theme'; import { Case } from '../redux/dashboardSlice'; interface CaseQueueProps { cases: Case[]; onSelect: (item: Case) => void; } /** * CaseQueue - displays a list of cases in the queue */ const CaseQueue: React.FC = ({ cases, onSelect }) => { if (!cases.length) { return No cases in queue.; } return ( item.id} renderItem={({ item }) => ( onSelect(item)}> {item.patientName} {item.description} {item.aiConfidence}% )} /> ); }; const styles = StyleSheet.create({ card: { marginBottom: Spacing.sm, }, row: { flexDirection: 'row', alignItems: 'center', }, info: { flex: 1, marginLeft: Spacing.sm, }, patient: { fontFamily: Typography.fontFamily.bold, fontSize: Typography.fontSize.md, color: Colors.textPrimary, }, desc: { fontFamily: Typography.fontFamily.regular, fontSize: Typography.fontSize.sm, color: Colors.textSecondary, }, confidence: { fontFamily: Typography.fontFamily.bold, fontSize: Typography.fontSize.md, color: Colors.info, marginLeft: Spacing.sm, }, empty: { textAlign: 'center', color: Colors.textMuted, fontFamily: Typography.fontFamily.regular, fontSize: Typography.fontSize.md, }, }); export default CaseQueue; /* * End of File: CaseQueue.tsx * Design & Developed by Tech4Biz Solutions * Copyright (c) Spurrin Innovations. All rights reserved. */