Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | /**
* Voice AI Screen - Expo Go Stub
* This screen requires native modules that are not available in Expo Go.
* A development build is required for the full voice functionality.
*/
import React from 'react';
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
import { Ionicons } from '@expo/vector-icons';
import { SafeAreaView } from 'react-native-safe-area-context';
import { useRouter } from 'expo-router';
import { AppColors, FontSizes, FontWeights, Spacing, BorderRadius } from '@/constants/theme';
export default function VoiceAIScreen() {
const router = useRouter();
return (
<SafeAreaView style={styles.container} edges={['top']}>
<View style={styles.content}>
<View style={styles.iconContainer}>
<Ionicons name="mic-off" size={64} color={AppColors.textMuted} />
</View>
<Text style={styles.title}>Voice AI Not Available</Text>
<Text style={styles.description}>
Voice calls require a development build.{'\n'}
Expo Go does not support native audio modules.
</Text>
<TouchableOpacity
style={styles.button}
onPress={() => router.push('/(tabs)/chat' as any)}
>
<Ionicons name="chatbubble" size={20} color={AppColors.white} />
<Text style={styles.buttonText}>Use Text Chat Instead</Text>
</TouchableOpacity>
</View>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: AppColors.background,
},
content: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
padding: Spacing.xl,
},
iconContainer: {
width: 120,
height: 120,
borderRadius: 60,
backgroundColor: AppColors.surfaceSecondary,
justifyContent: 'center',
alignItems: 'center',
marginBottom: Spacing.xl,
},
title: {
fontSize: FontSizes.xl,
fontWeight: FontWeights.bold,
color: AppColors.textPrimary,
marginBottom: Spacing.sm,
textAlign: 'center',
},
description: {
fontSize: FontSizes.base,
color: AppColors.textMuted,
textAlign: 'center',
lineHeight: 22,
marginBottom: Spacing.xl,
},
button: {
flexDirection: 'row',
alignItems: 'center',
backgroundColor: AppColors.primary,
paddingHorizontal: Spacing.xl,
paddingVertical: Spacing.md,
borderRadius: BorderRadius.lg,
gap: Spacing.sm,
},
buttonText: {
fontSize: FontSizes.base,
fontWeight: FontWeights.semibold,
color: AppColors.white,
},
});
|