This commit is contained in:
Patryk
2025-06-09 23:57:18 +02:00
parent 366ea4ada3
commit 1cc0f601fb
4 changed files with 121 additions and 59 deletions

View File

@@ -12,10 +12,10 @@ export async function getUserById(userId) {
});
return response.data;
} catch (err) {
console.error(
`Nie udało się pobrać danych użytkownika o ID ${userId}.`,
err.response.status
);
// console.error(
// `Nie udało się pobrać danych użytkownika o ID ${userId}.`,
// err.response.status
// );
throw err;
}
}

View File

@@ -32,7 +32,7 @@ export default function UserOrders() {
className="m-2"
data={orders}
renderItem={({ item }) => (
<Box className="p-4 rounded-md bg-white">
<Box className="p-4 rounded-md bg-white mb-2">
<VStack>
<HStack>
<Text>{item.orderId}</Text>

View File

@@ -1,4 +1,5 @@
import { Link, Stack, useLocalSearchParams } from "expo-router";
import { KeyboardAvoidingView, Platform } from "react-native";
import { Box } from "@/components/ui/box";
import { Card } from "@/components/ui/card";
import { Heading } from "@/components/ui/heading";
@@ -287,8 +288,8 @@ export default function NoticeDetails() {
</Box>
</VStack>
</ScrollView>
{isMessageFormVisible && (
<View className="absolute inset-0 bg-black bg-opacity-50 justify-center items-center z-20">
{/* {isMessageFormVisible && (
<View className="absolute inset-0 bg-black/50 bg-opacity-50 justify-center items-center z-20">
<View className="bg-white p-4 rounded-lg w-4/5">
<Text className="text-lg font-bold mb-4">
Wyślij wiadomość do {user?.firstName}
@@ -332,6 +333,57 @@ export default function NoticeDetails() {
</View>
</View>
</View>
)} */}
{isMessageFormVisible && (
<KeyboardAvoidingView
behavior={Platform.OS === "ios" ? "padding" : "height"}
className="absolute inset-0 bg-black/50 justify-center items-center z-20"
>
<View className="bg-white p-4 rounded-lg w-4/5 max-h-4/5">
<ScrollView showsVerticalScrollIndicator={false}>
<Text className="text-lg font-bold mb-4">
Wyślij wiadomość do {user?.firstName}
</Text>
<Text className="text-sm font-medium mb-1">Do:</Text>
<Text className="bg-gray-100 p-3 rounded text-gray-500">
{user?.email || "Brak adresu e-mail"}
</Text>
<Text className="text-sm font-medium mb-1">Twój e-mail:</Text>
<TextInput
className="border border-gray-300 p-2 rounded mb-4"
placeholder="Wpisz swój adres e-mail"
value={Email}
onChangeText={setEmail}
/>
<TextInput
className="border border-gray-300 rounded-md p-2 mb-4 h-32 text-left"
multiline
numberOfLines={4}
placeholder="Napisz swoją wiadomość..."
value={message}
onChangeText={setMessage}
/>
<View className="flex-row justify-end space-x-2">
<Pressable
onPress={() => setIsMessageFormVisible(false)}
className="bg-gray-300 py-2 px-4 rounded-md"
>
<Text className="text-gray-800">Anuluj</Text>
</Pressable>
<Pressable
onPress={handleSendMessage}
className="bg-primary-500 py-2 px-4 rounded-md"
>
<Text className="text-white">Wyślij</Text>
</Pressable>
</View>
</ScrollView>
</View>
</KeyboardAvoidingView>
)}
</Card>
);

View File

@@ -39,13 +39,19 @@ export default function UserProfile() {
return <Text>Nie znaleziono użytkownika</Text>;
}
const userNotices = notices.filter(notice => notice.clientId === Number(userId));
const userNotices = notices.filter(
(notice) => notice.clientId === Number(userId)
);
return (
<VStack className="p-4">
<Box className="flex-row items-center mb-4">
<Image
source={{ uri: user.profileImage || "https://th.bing.com/th/id/OIP.3coo_N8sieled8QNroQmkgHaHa?rs=1&pid=ImgDetMain" }}
source={{
uri:
user.profileImage ||
"https://th.bing.com/th/id/OIP.3coo_N8sieled8QNroQmkgHaHa?rs=1&pid=ImgDetMain",
}}
className="h-16 w-16 rounded-full mr-4"
alt="Zdjęcie profilowe"
/>
@@ -57,7 +63,11 @@ export default function UserProfile() {
<FlatList
data={userNotices}
numColumns={2}
columnWrapperStyle={{ marginBottom: 10, justifyContent: "space-between" }}
columnWrapperStyle={{
marginBottom: 10,
justifyContent: "space-between",
gap: 8,
}}
renderItem={({ item }) => <NoticeCard notice={item} />}
keyExtractor={(item) => item.noticeId.toString()}
/>