Refactor: Uniformly use AuthModalContext

This commit is contained in:
gpt-engineer-app[bot]
2025-10-16 13:08:23 +00:00
parent cdfbb10008
commit 866429aa40
13 changed files with 20 additions and 73 deletions

View File

@@ -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

View File

@@ -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",

View File

@@ -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>

View File

@@ -68,8 +68,6 @@ export default function Manufacturers() {
const handleCreateSubmit = async (data: any) => {
try {
if (!user) return;
await submitCompanyCreation(
data,
'manufacturer',

View File

@@ -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

View File

@@ -61,8 +61,6 @@ const Operators = () => {
const handleCreateSubmit = async (data: any) => {
try {
if (!user) return;
await submitCompanyCreation(
data,
'operator',

View File

@@ -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>

View File

@@ -61,8 +61,6 @@ const ParkOwners = () => {
const handleCreateSubmit = async (data: any) => {
try {
if (!user) return;
await submitCompanyCreation(
data,
'property_owner',

View File

@@ -115,13 +115,8 @@ 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 = {
const submissionData = {
...data,
park_id: park.id,
};

View File

@@ -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);

View File

@@ -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

View File

@@ -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

View File

@@ -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);