mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-19 01:21:24 +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>
30 lines
702 B
TypeScript
30 lines
702 B
TypeScript
import React from 'react';
|
|
import { View, ViewProps } from 'react-native';
|
|
|
|
interface CardProps extends ViewProps {
|
|
variant?: 'default' | 'elevated' | 'outline';
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export const Card: React.FC<CardProps> = ({
|
|
variant = 'default',
|
|
children,
|
|
className,
|
|
...props
|
|
}) => {
|
|
const baseStyles = 'rounded-xl p-4 bg-white';
|
|
|
|
const variantStyles = {
|
|
default: 'border border-gray-100',
|
|
elevated: 'shadow-lg shadow-gray-200',
|
|
outline: 'border-2 border-gray-200',
|
|
};
|
|
|
|
const combinedClassName = `${baseStyles} ${variantStyles[variant]} ${className || ''}`;
|
|
|
|
return (
|
|
<View className={combinedClassName} {...props}>
|
|
{children}
|
|
</View>
|
|
);
|
|
};
|