Răsfoiți Sursa

fix: add null safety for Qdrant embeddings and errors arrays

Fixed "Cannot read properties of undefined (reading 'filter')" error in ShopDetailPage. The issue occurred when Qdrant API responses returned data objects without embeddings/errors properties, causing undefined values to be assigned.

Root cause:
- API response structure: {data: {...}, success: true}
- But data.embeddings and data.errors could be undefined
- renderShopDetail() calls this.qdrantEmbeddings.filter() expecting an array
- When undefined, .filter() throws TypeError

Solution:
- Added || [] fallback to ensure arrays are never undefined
- this.qdrantEmbeddings = response.data.embeddings || []
- this.qdrantErrors = response.data.errors || []

This ensures the filter() calls in renderShopDetail() always have valid arrays to work with, even when the API returns incomplete data.

Fixes the shop details page loading error reported in production.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Fszontagh 8 luni în urmă
părinte
comite
f749f03a91
1 a modificat fișierele cu 2 adăugiri și 2 ștergeri
  1. 2 2
      web/src/components/pages/ShopDetailPage.ts

+ 2 - 2
web/src/components/pages/ShopDetailPage.ts

@@ -53,14 +53,14 @@ export class ShopDetailPage {
 
         // Handle embeddings response (won't break if it fails)
         if (embeddingsResponse.status === 'fulfilled' && embeddingsResponse.value.success && embeddingsResponse.value.data) {
-          this.qdrantEmbeddings = embeddingsResponse.value.data.embeddings;
+          this.qdrantEmbeddings = embeddingsResponse.value.data.embeddings || [];
         } else if (embeddingsResponse.status === 'rejected') {
           console.warn('[ShopDetailPage] Embeddings failed:', embeddingsResponse.reason);
         }
 
         // Handle errors response (won't break if it fails)
         if (errorsResponse.status === 'fulfilled' && errorsResponse.value.success && errorsResponse.value.data) {
-          this.qdrantErrors = errorsResponse.value.data.errors;
+          this.qdrantErrors = errorsResponse.value.data.errors || [];
         } else if (errorsResponse.status === 'rejected') {
           console.warn('[ShopDetailPage] Errors fetch failed:', errorsResponse.reason);
         }