a a vibe-coded abomination experiment of a fragrance review platform built on the atmosphere. drydown.social

Merge pull request #1 from taurean/claude/fix-review-loading-state-KsvEl

authored by taurean.bryant.land and committed by

GitHub b96a6d8a 5fcc24e2

+22 -17
+22 -17
src/components/EditReview.tsx
··· 33 33 34 34 useEffect(() => { 35 35 async function loadReview() { 36 - const baseClient = new AtpBaseClient(session.fetchHandler) 37 - setAtp(baseClient) 36 + try { 37 + const baseClient = new AtpBaseClient(session.fetchHandler.bind(session)) 38 + setAtp(baseClient) 38 39 39 - const rkey = reviewUri.split('/').pop()! 40 - const reviewData = await baseClient.social.drydown.review.get({ 41 - repo: session.sub, 42 - rkey 43 - }) 44 - setReview(reviewData.value) 40 + const rkey = reviewUri.split('/').pop()! 41 + const reviewData = await baseClient.social.drydown.review.get({ 42 + repo: session.sub, 43 + rkey 44 + }) 45 + setReview(reviewData.value) 45 46 46 - // Fetch fragrance name 47 - const fragranceRkey = reviewData.value.fragrance.split('/').pop()! 48 - const fragranceData = await baseClient.social.drydown.fragrance.get({ 49 - repo: session.sub, 50 - rkey: fragranceRkey 51 - }) 52 - setFragranceName(fragranceData.value.name) 53 - 54 - setIsLoading(false) 47 + // Fetch fragrance name 48 + const fragranceRkey = reviewData.value.fragrance.split('/').pop()! 49 + const fragranceData = await baseClient.social.drydown.fragrance.get({ 50 + repo: session.sub, 51 + rkey: fragranceRkey 52 + }) 53 + setFragranceName(fragranceData.value.name) 54 + } catch (e) { 55 + console.error('Failed to load review', e) 56 + alert('Failed to load review. Please try again.') 57 + } finally { 58 + setIsLoading(false) 59 + } 55 60 } 56 61 loadReview() 57 62 }, [reviewUri, session])