mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-17 11:29:40 +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>
32 lines
911 B
TypeScript
32 lines
911 B
TypeScript
import React from 'react';
|
|
import { View, Text, TouchableOpacity } from 'react-native';
|
|
import { router } from 'expo-router';
|
|
import { SFSymbol } from './SFSymbol';
|
|
|
|
interface HeaderProps {
|
|
title: string;
|
|
onSettingsPress?: () => void;
|
|
}
|
|
|
|
export const Header: React.FC<HeaderProps> = ({ title, onSettingsPress }) => {
|
|
const handleSettingsPress = () => {
|
|
if (onSettingsPress) {
|
|
onSettingsPress();
|
|
} else {
|
|
router.push('/settings');
|
|
}
|
|
};
|
|
|
|
return (
|
|
<View className="flex-row items-center justify-between px-4 py-3">
|
|
<Text className="text-2xl font-bold text-gray-900 dark:text-white">{title}</Text>
|
|
<TouchableOpacity
|
|
onPress={handleSettingsPress}
|
|
className="p-2"
|
|
accessibilityLabel="Settings"
|
|
accessibilityRole="button">
|
|
<SFSymbol name="gearshape" fallbackIcon="cog" size={24} />
|
|
</TouchableOpacity>
|
|
</View>
|
|
);
|
|
};
|