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 { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs'; import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { trackPageView } from '@/lib/viewTracking'; import { trackPageView } from '@/lib/viewTracking';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function DesignerDetail() { export default function DesignerDetail() {
const { slug } = useParams<{ slug: string }>(); const { slug } = useParams<{ slug: string }>();
@@ -31,6 +32,7 @@ export default function DesignerDetail() {
const [statsLoading, setStatsLoading] = useState(true); const [statsLoading, setStatsLoading] = useState(true);
const { user } = useAuth(); const { user } = useAuth();
const { isModerator } = useUserRole(); const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
useEffect(() => { useEffect(() => {
if (slug) { if (slug) {
@@ -161,13 +163,7 @@ export default function DesignerDetail() {
<Button <Button
variant="outline" variant="outline"
onClick={() => { onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this designer")}
if (!user) {
navigate('/auth');
} else {
setIsEditModalOpen(true);
}
}}
> >
<Edit className="w-4 h-4 mr-2" /> <Edit className="w-4 h-4 mr-2" />
Edit Designer Edit Designer

View File

@@ -30,7 +30,6 @@ export default function Designers() {
const handleCreateSubmit = async (data: any) => { const handleCreateSubmit = async (data: any) => {
try { try {
if (!user) return;
await submitCompanyCreation(data, 'designer', user.id); await submitCompanyCreation(data, 'designer', user.id);
toast({ toast({
title: "Designer Submitted", title: "Designer Submitted",

View File

@@ -19,6 +19,7 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyUpdate } from '@/lib/companyHelpers'; import { submitCompanyUpdate } from '@/lib/companyHelpers';
import { VersionIndicator } from '@/components/versioning/VersionIndicator'; import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs'; import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function ManufacturerDetail() { export default function ManufacturerDetail() {
const { slug } = useParams<{ slug: string }>(); const { slug } = useParams<{ slug: string }>();
@@ -32,6 +33,7 @@ export default function ManufacturerDetail() {
const [statsLoading, setStatsLoading] = useState(true); const [statsLoading, setStatsLoading] = useState(true);
const { user } = useAuth(); const { user } = useAuth();
const { isModerator } = useUserRole(); const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
useEffect(() => { useEffect(() => {
if (slug) { if (slug) {
@@ -172,13 +174,7 @@ export default function ManufacturerDetail() {
<Button <Button
variant="outline" variant="outline"
onClick={() => { onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this manufacturer")}
if (!user) {
navigate('/auth');
} else {
setIsEditModalOpen(true);
}
}}
> >
<Edit className="w-4 h-4 mr-2" /> <Edit className="w-4 h-4 mr-2" />
<span className="md:hidden">Edit</span> <span className="md:hidden">Edit</span>

View File

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

View File

@@ -20,6 +20,7 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyUpdate } from '@/lib/companyHelpers'; import { submitCompanyUpdate } from '@/lib/companyHelpers';
import { VersionIndicator } from '@/components/versioning/VersionIndicator'; import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs'; import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function OperatorDetail() { export default function OperatorDetail() {
const { slug } = useParams<{ slug: string }>(); const { slug } = useParams<{ slug: string }>();
@@ -35,6 +36,7 @@ export default function OperatorDetail() {
const [totalPhotos, setTotalPhotos] = useState<number>(0); const [totalPhotos, setTotalPhotos] = useState<number>(0);
const { user } = useAuth(); const { user } = useAuth();
const { isModerator } = useUserRole(); const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
useEffect(() => { useEffect(() => {
if (slug) { if (slug) {
@@ -206,13 +208,7 @@ export default function OperatorDetail() {
<Button <Button
variant="outline" variant="outline"
onClick={() => { onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this operator")}
if (!user) {
navigate('/auth');
} else {
setIsEditModalOpen(true);
}
}}
> >
<Edit className="w-4 h-4 mr-2" /> <Edit className="w-4 h-4 mr-2" />
Edit Operator Edit Operator

View File

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

View File

@@ -24,6 +24,7 @@ import { useUserRole } from '@/hooks/useUserRole';
import { Edit } from 'lucide-react'; import { Edit } from 'lucide-react';
import { VersionIndicator } from '@/components/versioning/VersionIndicator'; import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs'; import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function ParkDetail() { export default function ParkDetail() {
const { const {
@@ -33,6 +34,7 @@ export default function ParkDetail() {
}>(); }>();
const navigate = useNavigate(); const navigate = useNavigate();
const { user } = useAuth(); const { user } = useAuth();
const { requireAuth } = useAuthModal();
const [park, setPark] = useState<Park | null>(null); const [park, setPark] = useState<Park | null>(null);
const [rides, setRides] = useState<Ride[]>([]); const [rides, setRides] = useState<Ride[]>([]);
const [loading, setLoading] = useState(true); 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(' '); 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) => { const handleRideSubmit = async (rideData: any) => {
if (!user) {
navigate('/auth');
return;
}
try { try {
const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers'); 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) => { const handleEditParkSubmit = async (parkData: any) => {
if (!user || !park) return; if (!user || !park) return;
@@ -243,7 +226,7 @@ export default function ParkDetail() {
<Button <Button
variant="outline" variant="outline"
onClick={handleEditParkClick} onClick={() => requireAuth(() => setIsEditParkModalOpen(true), "Sign in to edit this park")}
> >
<Edit className="w-4 h-4 mr-2" /> <Edit className="w-4 h-4 mr-2" />
Edit Park Edit Park
@@ -582,7 +565,7 @@ export default function ParkDetail() {
{/* Header with Add Ride button */} {/* Header with Add Ride button */}
<div className="flex items-center justify-between mb-6"> <div className="flex items-center justify-between mb-6">
<h2 className="text-2xl font-bold">Rides at {park.name}</h2> <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" /> <Plus className="w-4 h-4 mr-2" />
Add Ride Add Ride
</Button> </Button>

View File

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

View File

@@ -115,13 +115,8 @@ export default function ParkRides() {
const handleCreateSubmit = async (data: Omit<RideSubmissionData, 'park_id'> & { park_id?: string }) => { const handleCreateSubmit = async (data: Omit<RideSubmissionData, 'park_id'> & { park_id?: string }) => {
try { try {
if (!user) {
navigate('/auth');
return;
}
// Pre-fill park_id in the submission // Pre-fill park_id in the submission
const submissionData = { const submissionData = {
...data, ...data,
park_id: park.id, park_id: park.id,
}; };

View File

@@ -238,8 +238,6 @@ export default function Parks() {
}; };
const handleParkSubmit = async (parkData: any) => { const handleParkSubmit = async (parkData: any) => {
if (!user) return;
try { try {
const { submitParkCreation } = await import('@/lib/entitySubmissionHelpers'); const { submitParkCreation } = await import('@/lib/entitySubmissionHelpers');
await submitParkCreation(parkData, user.id); await submitParkCreation(parkData, user.id);

View File

@@ -20,6 +20,7 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyUpdate } from '@/lib/companyHelpers'; import { submitCompanyUpdate } from '@/lib/companyHelpers';
import { VersionIndicator } from '@/components/versioning/VersionIndicator'; import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs'; import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function PropertyOwnerDetail() { export default function PropertyOwnerDetail() {
const { slug } = useParams<{ slug: string }>(); const { slug } = useParams<{ slug: string }>();
@@ -35,6 +36,7 @@ export default function PropertyOwnerDetail() {
const [totalPhotos, setTotalPhotos] = useState<number>(0); const [totalPhotos, setTotalPhotos] = useState<number>(0);
const { user } = useAuth(); const { user } = useAuth();
const { isModerator } = useUserRole(); const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
useEffect(() => { useEffect(() => {
if (slug) { if (slug) {
@@ -206,13 +208,7 @@ export default function PropertyOwnerDetail() {
<Button <Button
variant="outline" variant="outline"
onClick={() => { onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this property owner")}
if (!user) {
navigate('/auth');
} else {
setIsEditModalOpen(true);
}
}}
> >
<Edit className="w-4 h-4 mr-2" /> <Edit className="w-4 h-4 mr-2" />
Edit Property Owner Edit Property Owner

View File

@@ -47,12 +47,14 @@ import { useUserRole } from '@/hooks/useUserRole';
import { toast } from '@/hooks/use-toast'; import { toast } from '@/hooks/use-toast';
import { VersionIndicator } from '@/components/versioning/VersionIndicator'; import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs'; import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function RideDetail() { export default function RideDetail() {
const { parkSlug, rideSlug } = useParams<{ parkSlug: string; rideSlug: string }>(); const { parkSlug, rideSlug } = useParams<{ parkSlug: string; rideSlug: string }>();
const navigate = useNavigate(); const navigate = useNavigate();
const { user } = useAuth(); const { user } = useAuth();
const { isModerator } = useUserRole(); const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
const [ride, setRide] = useState<Ride | null>(null); const [ride, setRide] = useState<Ride | null>(null);
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
const [activeTab, setActiveTab] = useState("overview"); const [activeTab, setActiveTab] = useState("overview");
@@ -233,13 +235,7 @@ export default function RideDetail() {
<Button <Button
variant="outline" variant="outline"
onClick={() => { onClick={() => requireAuth(() => setIsEditModalOpen(true), "Sign in to edit this ride")}
if (!user) {
navigate('/auth');
} else {
setIsEditModalOpen(true);
}
}}
> >
<Edit className="w-4 h-4 mr-2" /> <Edit className="w-4 h-4 mr-2" />
Edit Ride Edit Ride

View File

@@ -80,8 +80,6 @@ export default function Rides() {
const handleCreateSubmit = async (data: any) => { const handleCreateSubmit = async (data: any) => {
try { try {
if (!user) return;
const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers'); const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers');
await submitRideCreation(data, user.id); await submitRideCreation(data, user.id);