mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 14:51:12 -05:00
Fix versioning component errors
This commit is contained in:
@@ -41,7 +41,7 @@ export function VersionComparisonDialog({
|
|||||||
};
|
};
|
||||||
|
|
||||||
loadDiff();
|
loadDiff();
|
||||||
}, [open, fromVersionId, toVersionId]);
|
}, [open, fromVersionId, toVersionId, compareVersions]);
|
||||||
|
|
||||||
const formatValue = (value: any): string => {
|
const formatValue = (value: any): string => {
|
||||||
if (value === null || value === undefined) return 'null';
|
if (value === null || value === undefined) return 'null';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useState, useEffect } from 'react';
|
import { useState, useEffect, useCallback } from 'react';
|
||||||
import { useParams, useNavigate } from 'react-router-dom';
|
import { useParams, useNavigate } from 'react-router-dom';
|
||||||
import { Header } from '@/components/layout/Header';
|
import { Header } from '@/components/layout/Header';
|
||||||
import { getBannerUrls } from '@/lib/cloudflareImageUtils';
|
import { getBannerUrls } from '@/lib/cloudflareImageUtils';
|
||||||
@@ -41,19 +41,25 @@ export default function ParkDetail() {
|
|||||||
const [photoCount, setPhotoCount] = useState<number>(0);
|
const [photoCount, setPhotoCount] = useState<number>(0);
|
||||||
const [statsLoading, setStatsLoading] = useState(true);
|
const [statsLoading, setStatsLoading] = useState(true);
|
||||||
const { isModerator } = useUserRole();
|
const { isModerator } = useUserRole();
|
||||||
useEffect(() => {
|
const fetchPhotoCount = useCallback(async (parkId: string) => {
|
||||||
if (slug) {
|
try {
|
||||||
fetchParkData();
|
const { count, error } = await supabase
|
||||||
}
|
.from('photos')
|
||||||
}, [slug]);
|
.select('id', { count: 'exact', head: true })
|
||||||
|
.eq('entity_type', 'park')
|
||||||
|
.eq('entity_id', parkId);
|
||||||
|
|
||||||
// Track page view when park is loaded
|
if (error) throw error;
|
||||||
useEffect(() => {
|
setPhotoCount(count || 0);
|
||||||
if (park?.id) {
|
} catch (error) {
|
||||||
trackPageView('park', park.id);
|
console.error('Error fetching photo count:', error);
|
||||||
|
setPhotoCount(0);
|
||||||
|
} finally {
|
||||||
|
setStatsLoading(false);
|
||||||
}
|
}
|
||||||
}, [park?.id]);
|
}, []);
|
||||||
const fetchParkData = async () => {
|
|
||||||
|
const fetchParkData = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
// Fetch park details
|
// Fetch park details
|
||||||
const {
|
const {
|
||||||
@@ -79,25 +85,20 @@ export default function ParkDetail() {
|
|||||||
} finally {
|
} finally {
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
}
|
}
|
||||||
};
|
}, [slug, fetchPhotoCount]);
|
||||||
|
|
||||||
const fetchPhotoCount = async (parkId: string) => {
|
useEffect(() => {
|
||||||
try {
|
if (slug) {
|
||||||
const { count, error } = await supabase
|
fetchParkData();
|
||||||
.from('photos')
|
|
||||||
.select('id', { count: 'exact', head: true })
|
|
||||||
.eq('entity_type', 'park')
|
|
||||||
.eq('entity_id', parkId);
|
|
||||||
|
|
||||||
if (error) throw error;
|
|
||||||
setPhotoCount(count || 0);
|
|
||||||
} catch (error) {
|
|
||||||
console.error('Error fetching photo count:', error);
|
|
||||||
setPhotoCount(0);
|
|
||||||
} finally {
|
|
||||||
setStatsLoading(false);
|
|
||||||
}
|
}
|
||||||
};
|
}, [slug, fetchParkData]);
|
||||||
|
|
||||||
|
// Track page view when park is loaded
|
||||||
|
useEffect(() => {
|
||||||
|
if (park?.id) {
|
||||||
|
trackPageView('park', park.id);
|
||||||
|
}
|
||||||
|
}, [park?.id]);
|
||||||
const getStatusColor = (status: string) => {
|
const getStatusColor = (status: string) => {
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 'operating':
|
case 'operating':
|
||||||
|
|||||||
Reference in New Issue
Block a user