feat: improve AI resilience, add background enrichment loading states, and fix duplicate identifier in TagSelector

This commit is contained in:
2025-12-23 11:38:16 +01:00
parent 1d98bb9947
commit c134c78a2c
37 changed files with 1906 additions and 786 deletions

View File

@@ -120,7 +120,6 @@ export default function Home() {
.order('created_at', { ascending: false });
if (error) {
console.error('Supabase fetch error:', error);
throw error;
}
@@ -143,8 +142,20 @@ export default function Home() {
setBottles(processedBottles);
} catch (err: any) {
console.error('Detailed fetch error:', err);
setFetchError(err.message || JSON.stringify(err));
// Silently skip if offline
const isNetworkError = !navigator.onLine ||
err.message?.includes('Failed to fetch') ||
err.message?.includes('NetworkError') ||
err.message?.includes('ERR_INTERNET_DISCONNECTED') ||
(err && Object.keys(err).length === 0); // Empty error object from Supabase when offline
if (isNetworkError) {
console.log('[fetchCollection] Skipping due to offline mode');
setFetchError(null);
} else {
console.error('Detailed fetch error:', err);
setFetchError(err.message || JSON.stringify(err));
}
} finally {
setIsLoading(false);
}
@@ -271,6 +282,7 @@ export default function Home() {
isOpen={isFlowOpen}
onClose={() => setIsFlowOpen(false)}
imageFile={capturedFile}
onBottleSaved={() => fetchCollection()}
/>
</main>
);