mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 09:31:13 -05:00
Refactor: Fix type safety and auth
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState, useEffect } from 'react';
|
||||
import { useState, useEffect, useCallback } from 'react';
|
||||
import { useParams, useNavigate } from 'react-router-dom';
|
||||
import { Header } from '@/components/layout/Header';
|
||||
import { Button } from '@/components/ui/button';
|
||||
@@ -28,13 +28,7 @@ export default function DesignerRides() {
|
||||
const [filterStatus, setFilterStatus] = useState('all');
|
||||
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
if (designerSlug) {
|
||||
fetchData();
|
||||
}
|
||||
}, [designerSlug, sortBy, filterCategory, filterStatus]);
|
||||
|
||||
const fetchData = async () => {
|
||||
const fetchData = useCallback(async () => {
|
||||
try {
|
||||
// Fetch designer
|
||||
const { data: designerData, error: designerError } = await supabase
|
||||
@@ -91,7 +85,13 @@ export default function DesignerRides() {
|
||||
} finally {
|
||||
setLoading(false);
|
||||
}
|
||||
};
|
||||
}, [designerSlug, sortBy, filterCategory, filterStatus]);
|
||||
|
||||
useEffect(() => {
|
||||
if (designerSlug) {
|
||||
fetchData();
|
||||
}
|
||||
}, [designerSlug, fetchData]);
|
||||
|
||||
const filteredRides = rides.filter(ride =>
|
||||
ride.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
|
||||
@@ -105,7 +105,16 @@ export default function DesignerRides() {
|
||||
return;
|
||||
}
|
||||
|
||||
const submissionData = {
|
||||
if (!designer) {
|
||||
toast({
|
||||
title: "Error",
|
||||
description: "Designer information is missing.",
|
||||
variant: "destructive"
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
const submissionData: RideSubmissionData = {
|
||||
...data,
|
||||
designer_id: designer.id,
|
||||
};
|
||||
@@ -200,10 +209,12 @@ export default function DesignerRides() {
|
||||
<FerrisWheel className="w-8 h-8 text-primary" />
|
||||
<h1 className="text-4xl font-bold">Rides by {designer.name}</h1>
|
||||
</div>
|
||||
<Button onClick={() => setIsCreateModalOpen(true)}>
|
||||
<Plus className="w-4 h-4 mr-2" />
|
||||
Add Ride
|
||||
</Button>
|
||||
{user && (
|
||||
<Button onClick={() => setIsCreateModalOpen(true)}>
|
||||
<Plus className="w-4 h-4 mr-2" />
|
||||
Add Ride
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
<p className="text-lg text-muted-foreground mb-4">
|
||||
Explore all rides designed by {designer.name}
|
||||
|
||||
Reference in New Issue
Block a user