From 0dc9d3adb261e8701ecc0120b8e14744ff07c4cb Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 2 Oct 2025 19:57:27 +0000 Subject: [PATCH] Fix owner park population --- src/pages/PropertyOwnerDetail.tsx | 55 ++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/src/pages/PropertyOwnerDetail.tsx b/src/pages/PropertyOwnerDetail.tsx index 81ddafc2..e6140b02 100644 --- a/src/pages/PropertyOwnerDetail.tsx +++ b/src/pages/PropertyOwnerDetail.tsx @@ -11,6 +11,7 @@ import { Company } from '@/types/database'; import { supabase } from '@/integrations/supabase/client'; import { PropertyOwnerForm } from '@/components/admin/PropertyOwnerForm'; import { PropertyOwnerPhotoGallery } from '@/components/companies/PropertyOwnerPhotoGallery'; +import { ParkCard } from '@/components/parks/ParkCard'; import { useAuth } from '@/hooks/useAuth'; import { useUserRole } from '@/hooks/useUserRole'; import { toast } from '@/hooks/use-toast'; @@ -20,7 +21,9 @@ export default function PropertyOwnerDetail() { const { slug } = useParams<{ slug: string }>(); const navigate = useNavigate(); const [owner, setOwner] = useState(null); + const [parks, setParks] = useState([]); const [loading, setLoading] = useState(true); + const [parksLoading, setParksLoading] = useState(true); const [isEditModalOpen, setIsEditModalOpen] = useState(false); const { user } = useAuth(); const { isModerator } = useUserRole(); @@ -42,6 +45,11 @@ export default function PropertyOwnerDetail() { if (error) throw error; setOwner(data); + + // Fetch parks owned by this property owner + if (data) { + fetchParks(data.id); + } } catch (error) { console.error('Error fetching property owner:', error); } finally { @@ -49,6 +57,27 @@ export default function PropertyOwnerDetail() { } }; + const fetchParks = async (ownerId: string) => { + try { + const { data, error } = await supabase + .from('parks') + .select(` + *, + location:locations(*) + `) + .eq('property_owner_id', ownerId) + .order('name') + .limit(6); + + if (error) throw error; + setParks(data || []); + } catch (error) { + console.error('Error fetching parks:', error); + } finally { + setParksLoading(false); + } + }; + const handleEditSubmit = async (data: any) => { try { await submitCompanyUpdate( @@ -240,8 +269,8 @@ export default function PropertyOwnerDetail() { -
-

Parks

+
+

Parks Owned

-

- View all parks owned by {owner.name} -

+ + {parksLoading ? ( +
+ {[1, 2, 3].map((i) => ( +
+ ))} +
+ ) : parks.length > 0 ? ( +
+ {parks.map((park) => ( + + ))} +
+ ) : ( +
+ +

No parks found for {owner.name}

+
+ )}