feat: Centralize Auth Modal and require auth for actions

This commit is contained in:
gpt-engineer-app[bot]
2025-10-16 12:59:20 +00:00
parent e340f1c489
commit 6819682ace
14 changed files with 138 additions and 125 deletions

View File

@@ -14,11 +14,13 @@ import { supabase } from '@/integrations/supabase/client';
import { useAuth } from '@/hooks/useAuth';
import { useUserRole } from '@/hooks/useUserRole';
import { toast } from '@/hooks/use-toast';
import { useAuthModal } from '@/hooks/useAuthModal';
export default function Rides() {
const navigate = useNavigate();
const { user } = useAuth();
const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
const [rides, setRides] = useState<Ride[]>([]);
const [loading, setLoading] = useState(true);
const [searchQuery, setSearchQuery] = useState('');
@@ -78,10 +80,7 @@ export default function Rides() {
const handleCreateSubmit = async (data: any) => {
try {
if (!user) {
navigate('/auth');
return;
}
if (!user) return;
const { submitRideCreation } = await import('@/lib/entitySubmissionHelpers');
await submitRideCreation(data, user.id);
@@ -171,13 +170,7 @@ export default function Rides() {
<div className="flex items-center gap-2">
<Button
onClick={() => {
if (!user) {
navigate('/auth');
} else {
setIsCreateModalOpen(true);
}
}}
onClick={() => requireAuth(() => setIsCreateModalOpen(true), "Sign in to add a new ride")}
className="gap-2"
>
<Plus className="w-4 h-4" />