mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-14 20:01:09 +02:00
- Add nutriphi-database package with Drizzle ORM - meals and nutrition_goals schemas - PostgreSQL 16 Docker setup - Drizzle Kit configuration - Migrate backend from Supabase to Drizzle - Add DatabaseModule with connection pooling - Add StorageService for Hetzner Object Storage (S3-compatible) - Update MealsService with Drizzle queries - Add /api/meals/upload endpoint for image upload + analysis - Update web app to use backend for uploads - Remove Supabase Storage direct upload - Update uploadService to send images to backend - Remove Supabase dependencies from package.json - Simplify hooks.server.ts - Add Coolify deployment configuration - Dockerfile for production build - docker-compose.coolify.yml 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
31 lines
954 B
TypeScript
31 lines
954 B
TypeScript
import React from 'react';
|
|
import { View, Text, Modal, ActivityIndicator } from 'react-native';
|
|
|
|
interface LoadingOverlayProps {
|
|
visible: boolean;
|
|
message?: string;
|
|
backgroundColor?: string;
|
|
}
|
|
|
|
export default function LoadingOverlay({
|
|
visible,
|
|
message = 'Wird geladen...',
|
|
backgroundColor = 'rgba(0, 0, 0, 0.7)',
|
|
}: LoadingOverlayProps) {
|
|
if (!visible) return null;
|
|
|
|
return (
|
|
<Modal transparent visible={visible} animationType="fade">
|
|
<View className="flex-1 items-center justify-center" style={{ backgroundColor }}>
|
|
<View className="rounded-2xl bg-white p-8 shadow-lg dark:bg-gray-800">
|
|
<View className="items-center space-y-4">
|
|
<ActivityIndicator size="large" className="text-indigo-500" />
|
|
<Text className="text-center text-lg font-medium text-gray-900 dark:text-white">
|
|
{message}
|
|
</Text>
|
|
</View>
|
|
</View>
|
|
</View>
|
|
</Modal>
|
|
);
|
|
}
|