Feedback
import React, { useState } from 'react';
import { StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native';
import { LinearGradient } from 'expo-linear-gradient';
import { Ionicons } from '@expo/vector-icons';
export default function FeedbackPage() {
const [feedback, setFeedback] = useState('');
const [rating, setRating] = useState(0);
const handleRating = (value: number) => {
setRating(value);
};
return (
<LinearGradient colors={['#e0eafc', '#cfdef3']} style={styles.container}>
<Text style={styles.title}>We Value Your Feedback</Text>
<Text style={styles.subtitle}>Let us know how we can improve</Text>
<View style={styles.ratingContainer}>
<Text style={styles.ratingText}>Rate Us:</Text>
<View style={styles.stars}>
{[1, 2, 3, 4, 5].map((star) => (
<TouchableOpacity key={star} onPress={() => handleRating(star)}>
<Ionicons
name={star <= rating ? 'star' : 'star-outline'}
size={32}
color="#FFD700"
/>
</TouchableOpacity>
))}
</View>
</View>
<TextInput
style={styles.input}
placeholder="Write your feedback here..."
placeholderTextColor="#aaa"
multiline
value={feedback}
onChangeText={setFeedback}
/>
<TouchableOpacity style={styles.button}>
<Text style={styles.buttonText}>Submit Feedback</Text>
</TouchableOpacity>
</LinearGradient>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
padding: 20,
justifyContent: 'center',
},
title: {
fontSize: 28,
fontWeight: 'bold',
color: '#333',
textAlign: 'center',
marginBottom: 10,
},
subtitle: {
fontSize: 16,
color: '#666',
textAlign: 'center',
marginBottom: 30,
},
ratingContainer: {
alignItems: 'center',
marginBottom: 20,
},
ratingText: {
fontSize: 18,
fontWeight: 'bold',
color: '#333',
marginBottom: 10,
},
stars: {
flexDirection: 'row',
},
input: {
backgroundColor: '#fff',
borderRadius: 12,
padding: 15,
fontSize: 16,
color: '#333',
height: 120,
textAlignVertical: 'top',
borderWidth: 1,
borderColor: '#ddd',
marginBottom: 20,
},
button: {
backgroundColor: '#007BFF',
borderRadius: 25,
height: 50,
justifyContent: 'center',
alignItems: 'center',
shadowColor: '#000',
shadowOffset: { width: 0, height: 2 },
shadowOpacity: 0.2,
shadowRadius: 4,
elevation: 5,
},
buttonText: {
color: '#fff',
fontSize: 18,
fontWeight: 'bold',
},
});
See More