mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 17:51:12 -05:00
Refactor: Uniformly use AuthModalContext
This commit is contained in:
@@ -19,6 +19,7 @@ import { submitCompanyUpdate } from '@/lib/companyHelpers';
|
||||
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
|
||||
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
|
||||
import { trackPageView } from '@/lib/viewTracking';
|
||||
import { useAuthModal } from '@/hooks/useAuthModal';
|
||||
|
||||
export default function DesignerDetail() {
|
||||
const { slug } = useParams<{ slug: string }>();
|
||||
@@ -31,6 +32,7 @@ export default function DesignerDetail() {
|
||||
const [statsLoading, setStatsLoading] = useState(true);
|
||||
const { user } = useAuth();
|
||||
const { isModerator } = useUserRole();
|
||||
const { requireAuth } = useAuthModal();
|
||||
|
||||
useEffect(() => {
|
||||
if (slug) {
|
||||
@@ -161,13 +163,7 @@ export default function DesignerDetail() {
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
} else {
|
||||
setIsEditModalOpen(true);
|
||||
}
|
||||
}}
|
||||
onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this designer")}
|
||||
>
|
||||
<Edit className="w-4 h-4 mr-2" />
|
||||
Edit Designer
|
||||
|
||||
@@ -30,7 +30,6 @@ export default function Designers() {
|
||||
|
||||
const handleCreateSubmit = async (data: any) => {
|
||||
try {
|
||||
if (!user) return;
|
||||
await submitCompanyCreation(data, 'designer', user.id);
|
||||
toast({
|
||||
title: "Designer Submitted",
|
||||
|
||||
@@ -19,6 +19,7 @@ import { toast } from '@/hooks/use-toast';
|
||||
import { submitCompanyUpdate } from '@/lib/companyHelpers';
|
||||
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
|
||||
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
|
||||
import { useAuthModal } from '@/hooks/useAuthModal';
|
||||
|
||||
export default function ManufacturerDetail() {
|
||||
const { slug } = useParams<{ slug: string }>();
|
||||
@@ -32,6 +33,7 @@ export default function ManufacturerDetail() {
|
||||
const [statsLoading, setStatsLoading] = useState(true);
|
||||
const { user } = useAuth();
|
||||
const { isModerator } = useUserRole();
|
||||
const { requireAuth } = useAuthModal();
|
||||
|
||||
useEffect(() => {
|
||||
if (slug) {
|
||||
@@ -172,13 +174,7 @@ export default function ManufacturerDetail() {
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
} else {
|
||||
setIsEditModalOpen(true);
|
||||
}
|
||||
}}
|
||||
onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this manufacturer")}
|
||||
>
|
||||
<Edit className="w-4 h-4 mr-2" />
|
||||
<span className="md:hidden">Edit</span>
|
||||
|
||||
@@ -68,8 +68,6 @@ export default function Manufacturers() {
|
||||
|
||||
const handleCreateSubmit = async (data: any) => {
|
||||
try {
|
||||
if (!user) return;
|
||||
|
||||
await submitCompanyCreation(
|
||||
data,
|
||||
'manufacturer',
|
||||
|
||||
@@ -20,6 +20,7 @@ import { toast } from '@/hooks/use-toast';
|
||||
import { submitCompanyUpdate } from '@/lib/companyHelpers';
|
||||
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
|
||||
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
|
||||
import { useAuthModal } from '@/hooks/useAuthModal';
|
||||
|
||||
export default function OperatorDetail() {
|
||||
const { slug } = useParams<{ slug: string }>();
|
||||
@@ -35,6 +36,7 @@ export default function OperatorDetail() {
|
||||
const [totalPhotos, setTotalPhotos] = useState<number>(0);
|
||||
const { user } = useAuth();
|
||||
const { isModerator } = useUserRole();
|
||||
const { requireAuth } = useAuthModal();
|
||||
|
||||
useEffect(() => {
|
||||
if (slug) {
|
||||
@@ -206,13 +208,7 @@ export default function OperatorDetail() {
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
} else {
|
||||
setIsEditModalOpen(true);
|
||||
}
|
||||
}}
|
||||
onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this operator")}
|
||||
>
|
||||
<Edit className="w-4 h-4 mr-2" />
|
||||
Edit Operator
|
||||
|
||||
@@ -61,8 +61,6 @@ const Operators = () => {
|
||||
|
||||
const handleCreateSubmit = async (data: any) => {
|
||||
try {
|
||||
if (!user) return;
|
||||
|
||||
await submitCompanyCreation(
|
||||
data,
|
||||
'operator',
|
||||
|
||||
@@ -24,6 +24,7 @@ import { useUserRole } from '@/hooks/useUserRole';
|
||||
import { Edit } from 'lucide-react';
|
||||
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
|
||||
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
|
||||
import { useAuthModal } from '@/hooks/useAuthModal';
|
||||
|
||||
export default function ParkDetail() {
|
||||
const {
|
||||
@@ -33,6 +34,7 @@ export default function ParkDetail() {
|
||||
}>();
|
||||
const navigate = useNavigate();
|
||||
const { user } = useAuth();
|
||||
const { requireAuth } = useAuthModal();
|
||||
const [park, setPark] = useState<Park | null>(null);
|
||||
const [rides, setRides] = useState<Ride[]>([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
@@ -129,19 +131,7 @@ export default function ParkDetail() {
|
||||
return type.split('_').map(word => word.charAt(0).toUpperCase() + word.slice(1)).join(' ');
|
||||
};
|
||||
|
||||
const handleAddRideClick = () => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
return;
|
||||
}
|
||||
setIsAddRideModalOpen(true);
|
||||
};
|
||||
|
||||
const handleRideSubmit = async (rideData: any) => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers');
|
||||
@@ -168,13 +158,6 @@ export default function ParkDetail() {
|
||||
}
|
||||
};
|
||||
|
||||
const handleEditParkClick = () => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
return;
|
||||
}
|
||||
setIsEditParkModalOpen(true);
|
||||
};
|
||||
|
||||
const handleEditParkSubmit = async (parkData: any) => {
|
||||
if (!user || !park) return;
|
||||
@@ -243,7 +226,7 @@ export default function ParkDetail() {
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={handleEditParkClick}
|
||||
onClick={() => requireAuth(() => setIsEditParkModalOpen(true), "Sign in to edit this park")}
|
||||
>
|
||||
<Edit className="w-4 h-4 mr-2" />
|
||||
Edit Park
|
||||
@@ -582,7 +565,7 @@ export default function ParkDetail() {
|
||||
{/* Header with Add Ride button */}
|
||||
<div className="flex items-center justify-between mb-6">
|
||||
<h2 className="text-2xl font-bold">Rides at {park.name}</h2>
|
||||
<Button onClick={handleAddRideClick}>
|
||||
<Button onClick={() => requireAuth(() => setIsAddRideModalOpen(true), "Sign in to add a ride")}>
|
||||
<Plus className="w-4 h-4 mr-2" />
|
||||
Add Ride
|
||||
</Button>
|
||||
|
||||
@@ -61,8 +61,6 @@ const ParkOwners = () => {
|
||||
|
||||
const handleCreateSubmit = async (data: any) => {
|
||||
try {
|
||||
if (!user) return;
|
||||
|
||||
await submitCompanyCreation(
|
||||
data,
|
||||
'property_owner',
|
||||
|
||||
@@ -115,11 +115,6 @@ export default function ParkRides() {
|
||||
|
||||
const handleCreateSubmit = async (data: Omit<RideSubmissionData, 'park_id'> & { park_id?: string }) => {
|
||||
try {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
return;
|
||||
}
|
||||
|
||||
// Pre-fill park_id in the submission
|
||||
const submissionData = {
|
||||
...data,
|
||||
|
||||
@@ -238,8 +238,6 @@ export default function Parks() {
|
||||
};
|
||||
|
||||
const handleParkSubmit = async (parkData: any) => {
|
||||
if (!user) return;
|
||||
|
||||
try {
|
||||
const { submitParkCreation } = await import('@/lib/entitySubmissionHelpers');
|
||||
await submitParkCreation(parkData, user.id);
|
||||
|
||||
@@ -20,6 +20,7 @@ import { toast } from '@/hooks/use-toast';
|
||||
import { submitCompanyUpdate } from '@/lib/companyHelpers';
|
||||
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
|
||||
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
|
||||
import { useAuthModal } from '@/hooks/useAuthModal';
|
||||
|
||||
export default function PropertyOwnerDetail() {
|
||||
const { slug } = useParams<{ slug: string }>();
|
||||
@@ -35,6 +36,7 @@ export default function PropertyOwnerDetail() {
|
||||
const [totalPhotos, setTotalPhotos] = useState<number>(0);
|
||||
const { user } = useAuth();
|
||||
const { isModerator } = useUserRole();
|
||||
const { requireAuth } = useAuthModal();
|
||||
|
||||
useEffect(() => {
|
||||
if (slug) {
|
||||
@@ -206,13 +208,7 @@ export default function PropertyOwnerDetail() {
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
} else {
|
||||
setIsEditModalOpen(true);
|
||||
}
|
||||
}}
|
||||
onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this property owner")}
|
||||
>
|
||||
<Edit className="w-4 h-4 mr-2" />
|
||||
Edit Property Owner
|
||||
|
||||
@@ -47,12 +47,14 @@ import { useUserRole } from '@/hooks/useUserRole';
|
||||
import { toast } from '@/hooks/use-toast';
|
||||
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
|
||||
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
|
||||
import { useAuthModal } from '@/hooks/useAuthModal';
|
||||
|
||||
export default function RideDetail() {
|
||||
const { parkSlug, rideSlug } = useParams<{ parkSlug: string; rideSlug: string }>();
|
||||
const navigate = useNavigate();
|
||||
const { user } = useAuth();
|
||||
const { isModerator } = useUserRole();
|
||||
const { requireAuth } = useAuthModal();
|
||||
const [ride, setRide] = useState<Ride | null>(null);
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [activeTab, setActiveTab] = useState("overview");
|
||||
@@ -233,13 +235,7 @@ export default function RideDetail() {
|
||||
|
||||
<Button
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
if (!user) {
|
||||
navigate('/auth');
|
||||
} else {
|
||||
setIsEditModalOpen(true);
|
||||
}
|
||||
}}
|
||||
onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this ride")}
|
||||
>
|
||||
<Edit className="w-4 h-4 mr-2" />
|
||||
Edit Ride
|
||||
|
||||
@@ -80,8 +80,6 @@ export default function Rides() {
|
||||
|
||||
const handleCreateSubmit = async (data: any) => {
|
||||
try {
|
||||
if (!user) return;
|
||||
|
||||
const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers');
|
||||
await submitRideCreation(data, user.id);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user