- 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.
21 lines
550 B
TypeScript
21 lines
550 B
TypeScript
import { View, ActivityIndicator } from "react-native";
|
||
import { useTheme } from "../theme";
|
||
|
||
interface LoadingProps {
|
||
fullScreen?: boolean;
|
||
}
|
||
|
||
export function Loading({ fullScreen = false }: LoadingProps) {
|
||
const theme = useTheme();
|
||
|
||
return (
|
||
<View
|
||
accessible
|
||
accessibilityLabel="Се вчитува"
|
||
accessibilityRole="progressbar"
|
||
style={[{ alignItems: "center", justifyContent: "center" }, fullScreen && { flex: 1 }]}
|
||
>
|
||
<ActivityIndicator size="large" color={theme.colors.primary} />
|
||
</View>
|
||
);
|
||
} |