diff --git a/App.tsx b/App.tsx index 7b81abc..a6c4de9 100644 --- a/App.tsx +++ b/App.tsx @@ -242,6 +242,7 @@ export default function App() { if (!result.canceled && result.assets && result.assets.length > 0) { const asset = result.assets[0]; + console.error(`[gps] picked uri=${asset.uri} assetId=${asset.assetId || 'null'} exifGPS=${asset.exif ? JSON.stringify(asset.exif.GPSLatitude ?? null) : 'no-exif'}`); setLibraryImageUri(asset.uri); setMode('library'); // Clear old GPS — will be replaced if the photo (or device) has location data @@ -259,6 +260,9 @@ export default function App() { if (permissionDenied) { console.warn('Media library read permission denied — photo GPS unavailable.'); } + console.error( + `[gps] resolved ${gps ? `src=${gps.source} lat=${gps.latitude.toFixed(5)} lon=${gps.longitude.toFixed(5)} loc=${(gps.locality || '').slice(0, 40)}` : 'none'}` + ); Haptics.notificationAsync(Haptics.NotificationFeedbackType.Success); } diff --git a/src/components/TopBar.tsx b/src/components/TopBar.tsx index 5e871bc..3afffba 100644 --- a/src/components/TopBar.tsx +++ b/src/components/TopBar.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { View, Text, TouchableOpacity, TextInput, Modal } from 'react-native'; +import { View, Text, TouchableOpacity, TextInput, Modal, KeyboardAvoidingView, Platform } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { Plus } from 'lucide-react-native'; import * as Haptics from 'expo-haptics'; @@ -60,8 +60,12 @@ export default function TopBar({ mode, recipeName, onSaveRecipe }: TopBarProps) visible={modalVisible} onRequestClose={() => setModalVisible(false)} > - - + + + SAVE CURRENT AS RECIPE @@ -89,7 +93,7 @@ export default function TopBar({ mode, recipeName, onSaveRecipe }: TopBarProps) - + );