app info modified

This commit is contained in:
yashwin-foxy 2025-08-27 11:56:19 +05:30
parent b6f4c8f5df
commit 9d7ebbcb3a

View File

@ -11,11 +11,8 @@ import {
Text, Text,
StyleSheet, StyleSheet,
ScrollView, ScrollView,
Image,
Linking,
TouchableOpacity,
} from 'react-native'; } from 'react-native';
import Icon from 'react-native-vector-icons/Feather';
import { theme } from '../../../theme/theme'; import { theme } from '../../../theme/theme';
import { SettingsHeader } from '../components/SettingsHeader'; import { SettingsHeader } from '../components/SettingsHeader';
import { CustomModal } from '../../../shared/components'; import { CustomModal } from '../../../shared/components';
@ -59,75 +56,32 @@ export const AppInfoScreen: React.FC<AppInfoScreenProps> = ({
buildNumber: '2025.08.001', buildNumber: '2025.08.001',
releaseDate: 'August 2025', releaseDate: 'August 2025',
developer: 'Tech4Biz Solutions', developer: 'Tech4Biz Solutions',
copyright: '© 2024 Spurrin Innovations. All rights reserved.', copyright: '© 2025 Spurrin Innovations. All rights reserved.',
}; };
// App features and description // App features and description
const appDescription = { const appDescription = {
title: 'Emergency Radiology Physician App', title: 'AI-Powered Medical Imaging Radiologist App',
description: 'Advanced medical imaging and patient management platform designed specifically for emergency room physicians. Provides real-time access to critical patient scans, AI-powered diagnostic assistance, and streamlined clinical workflows.', description: 'Comprehensive medical imaging and patient management platform designed specifically for radiologists. Provides access to AI-powered diagnostic predictions, DICOM image viewing with Cornerstone.js integration, and streamlined clinical workflows for reviewing radiologist feedback.',
features: [ features: [
'Real-time patient monitoring', 'AI-powered diagnostic predictions with confidence scores',
'AI-powered diagnostic assistance', 'DICOM image viewer with Cornerstone.js integration',
'Emergency alert system', 'Radiologist feedback review system',
'Secure patient data management', 'Patient case management and tracking',
'Mobile-optimized interface', 'Hospital integration and user management',
'Hospital system integration', 'Mobile-optimized interface for clinical use',
], ],
}; };
// Legal and support information
const legalInfo = {
privacyPolicy: 'https://neoscan.com/privacy',
termsOfService: 'https://neoscan.com/terms',
supportEmail: 'support@neoscan.com',
supportPhone: '+1-800-NEOSCAN',
website: 'https://neoscan.com',
};
// ============================================================================ // ============================================================================
// EVENT HANDLERS // EVENT HANDLERS
// ============================================================================ // ============================================================================
/**
* handleExternalLink Function
*
* Purpose: Handle opening external links in browser
*
* @param url - URL to open
*/
const handleExternalLink = async (url: string) => {
try {
const supported = await Linking.canOpenURL(url);
if (supported) {
await Linking.openURL(url);
} else {
console.log("Can't open URL:", url);
}
} catch (error) {
console.error('Error opening URL:', error);
}
};
/**
* handleEmailSupport Function
*
* Purpose: Handle opening email client for support
*/
const handleEmailSupport = () => {
const emailUrl = `mailto:${legalInfo.supportEmail}?subject=NeoScan Physician App Support`;
handleExternalLink(emailUrl);
};
/**
* handlePhoneSupport Function
*
* Purpose: Handle opening phone dialer for support
*/
const handlePhoneSupport = () => {
const phoneUrl = `tel:${legalInfo.supportPhone}`;
handleExternalLink(phoneUrl);
};
// ============================================================================ // ============================================================================
// MAIN RENDER // MAIN RENDER
@ -201,60 +155,7 @@ export const AppInfoScreen: React.FC<AppInfoScreenProps> = ({
</View> </View>
</View> </View>
{/* Support and contact section */}
<View style={styles.infoSection}>
<Text style={styles.sectionTitle}>Support & Contact</Text>
<TouchableOpacity
style={styles.contactItem}
onPress={handleEmailSupport}
activeOpacity={0.7}
>
<Text style={styles.contactLabel}>Email Support:</Text>
<Text style={styles.contactValue}>{legalInfo.supportEmail}</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.contactItem}
onPress={handlePhoneSupport}
activeOpacity={0.7}
>
<Text style={styles.contactLabel}>Phone Support:</Text>
<Text style={styles.contactValue}>{legalInfo.supportPhone}</Text>
</TouchableOpacity>
<TouchableOpacity
style={styles.contactItem}
onPress={() => handleExternalLink(legalInfo.website)}
activeOpacity={0.7}
>
<Text style={styles.contactLabel}>Website:</Text>
<Text style={styles.contactValue}>{legalInfo.website}</Text>
</TouchableOpacity>
</View>
{/* Legal information section */}
<View style={styles.infoSection}>
<Text style={styles.sectionTitle}>Legal Information</Text>
<TouchableOpacity
style={styles.legalItem}
onPress={() => handleExternalLink(legalInfo.privacyPolicy)}
activeOpacity={0.7}
>
<Text style={styles.legalText}>Privacy Policy</Text>
<Icon name="chevron-right" size={20} color={theme.colors.primary} />
</TouchableOpacity>
<TouchableOpacity
style={styles.legalItem}
onPress={() => handleExternalLink(legalInfo.termsOfService)}
activeOpacity={0.7}
>
<Text style={styles.legalText}>Terms of Service</Text>
<Icon name="chevron-right" size={20} color={theme.colors.primary} />
</TouchableOpacity>
</View>
{/* Copyright section */} {/* Copyright section */}
<View style={styles.copyrightSection}> <View style={styles.copyrightSection}>
@ -423,43 +324,9 @@ const styles = StyleSheet.create({
color: theme.colors.textSecondary, color: theme.colors.textSecondary,
}, },
// Contact items
contactItem: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
paddingVertical: theme.spacing.sm,
borderBottomColor: theme.colors.border,
borderBottomWidth: 1,
},
contactLabel: {
fontSize: theme.typography.fontSize.bodyMedium,
fontFamily: theme.typography.fontFamily.medium,
color: theme.colors.textPrimary,
},
contactValue: {
fontSize: theme.typography.fontSize.bodyMedium,
fontFamily: theme.typography.fontFamily.regular,
color: theme.colors.primary,
},
// Legal items
legalItem: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
paddingVertical: theme.spacing.sm,
borderBottomColor: theme.colors.border,
borderBottomWidth: 1,
},
legalText: {
fontSize: theme.typography.fontSize.bodyMedium,
fontFamily: theme.typography.fontFamily.medium,
color: theme.colors.primary,
},
// Copyright section // Copyright section
copyrightSection: { copyrightSection: {