- Error boundary with Macedonian fallback screen and retry button wrapping all navigation - Pull-to-refresh on all list/detail screens (home, explore, posts, chat, profile, ad detail, post detail) - Accessibility: labels on all interactive elements, roles on Pressable/Button, selectable text for user data - Deep linking: mojmajstor:// scheme configured in app.json, ad/[id] and chat/[id] routes work via Expo Router auto-routing - Pagination: cursor-based paginated queries for ads, posts, messages, chats, reviews with Load More buttons on frontend - Profile: shows customer posts with PostCard, loading/error states, create-post navigation - Auth error messages in Macedonian (Невалидни акредитиви, итн.) All UI text in Macedonian. TypeScript clean, Convex functions deployed.
28 lines
1.3 KiB
TypeScript
28 lines
1.3 KiB
TypeScript
import { View, Text, Pressable } from "react-native";
|
||
import { useRouter } from "expo-router";
|
||
import { useTheme } from "../components/theme";
|
||
|
||
export default function NotFound() {
|
||
const theme = useTheme();
|
||
const router = useRouter();
|
||
|
||
return (
|
||
<View style={{ flex: 1, alignItems: "center", justifyContent: "center", backgroundColor: theme.colors.background, padding: theme.spacing.lg }}>
|
||
<Text accessible accessibilityLabel="Страницата не е пронајдена" style={{ fontSize: 24, fontWeight: "700", color: theme.colors.text, marginBottom: theme.spacing.sm }}>
|
||
Страницата не е пронајдена
|
||
</Text>
|
||
<Text selectable style={{ color: theme.colors.textSecondary, marginBottom: theme.spacing.lg, textAlign: "center" }}>
|
||
Страницата што ја барате не постои.
|
||
</Text>
|
||
<Pressable
|
||
accessible
|
||
accessibilityLabel="Назад кон почетна"
|
||
accessibilityRole="button"
|
||
onPress={() => router.replace("/(tabs)/(home)")}
|
||
style={{ backgroundColor: theme.colors.primary, borderRadius: theme.radius.md, paddingVertical: 12, paddingHorizontal: 24 }}
|
||
>
|
||
<Text style={{ color: "#FFFFFF", fontWeight: "600", fontSize: 16 }}>Начална страница</Text>
|
||
</Pressable>
|
||
</View>
|
||
);
|
||
} |