diff --git a/src/pages/DesignerDetail.tsx b/src/pages/DesignerDetail.tsx
index 2e882d5f..bd09075a 100644
--- a/src/pages/DesignerDetail.tsx
+++ b/src/pages/DesignerDetail.tsx
@@ -24,6 +24,7 @@ import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { trackPageView } from '@/lib/viewTracking';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function DesignerDetail() {
const { slug } = useParams<{ slug: string }>();
@@ -37,6 +38,9 @@ export default function DesignerDetail() {
const { user } = useAuth();
const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
+
+ // Update document title when designer changes
+ useDocumentTitle(designer?.name || 'Designer Details');
useEffect(() => {
if (slug) {
diff --git a/src/pages/DesignerRides.tsx b/src/pages/DesignerRides.tsx
index 4c4ec019..13215e3a 100644
--- a/src/pages/DesignerRides.tsx
+++ b/src/pages/DesignerRides.tsx
@@ -15,6 +15,7 @@ import { AutocompleteSearch } from '@/components/search/AutocompleteSearch';
import { useAuth } from '@/hooks/useAuth';
import { toast } from '@/hooks/use-toast';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function DesignerRides() {
const { designerSlug } = useParams<{ designerSlug: string }>();
@@ -28,6 +29,9 @@ export default function DesignerRides() {
const [sortBy, setSortBy] = useState('name');
const [filterCategory, setFilterCategory] = useState('all');
const [filterStatus, setFilterStatus] = useState('all');
+
+ // Update document title when designer changes
+ useDocumentTitle(designer ? `${designer.name} - Rides` : 'Designer Rides');
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
const fetchData = useCallback(async () => {
diff --git a/src/pages/Designers.tsx b/src/pages/Designers.tsx
index abc9768c..9ee1c1b0 100644
--- a/src/pages/Designers.tsx
+++ b/src/pages/Designers.tsx
@@ -23,8 +23,10 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyCreation } from '@/lib/companyHelpers';
import { useAuthModal } from '@/hooks/useAuthModal';
import { getErrorMessage } from '@/lib/errorHandler';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function Designers() {
+ useDocumentTitle('Designers');
const navigate = useNavigate();
const { user } = useAuth();
const { isModerator } = useUserRole();
diff --git a/src/pages/ForceLogout.tsx b/src/pages/ForceLogout.tsx
index 1d021b09..690e2519 100644
--- a/src/pages/ForceLogout.tsx
+++ b/src/pages/ForceLogout.tsx
@@ -2,6 +2,7 @@ import { useEffect } from "react";
import { useNavigate } from "react-router-dom";
import { supabase } from "@/integrations/supabase/client";
import { authStorage } from "@/lib/authStorage";
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
/**
* ForceLogout - Hidden endpoint for completely clearing auth session
@@ -9,6 +10,7 @@ import { authStorage } from "@/lib/authStorage";
* Not linked anywhere in the UI - for manual navigation only
*/
const ForceLogout = () => {
+ useDocumentTitle('Signing Out');
const navigate = useNavigate();
useEffect(() => {
diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx
index 278f66d8..3c207938 100644
--- a/src/pages/Index.tsx
+++ b/src/pages/Index.tsx
@@ -1,8 +1,11 @@
import { Header } from '@/components/layout/Header';
import { SimpleHeroSearch } from '@/components/homepage/SimpleHeroSearch';
import { ContentTabs } from '@/components/homepage/ContentTabs';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
const Index = () => {
+ useDocumentTitle('Home');
+
return (
diff --git a/src/pages/ManufacturerDetail.tsx b/src/pages/ManufacturerDetail.tsx
index d7659e82..90d45836 100644
--- a/src/pages/ManufacturerDetail.tsx
+++ b/src/pages/ManufacturerDetail.tsx
@@ -24,6 +24,7 @@ import { submitCompanyUpdate } from '@/lib/companyHelpers';
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function ManufacturerDetail() {
const { slug } = useParams<{ slug: string }>();
@@ -38,6 +39,9 @@ export default function ManufacturerDetail() {
const { user } = useAuth();
const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
+
+ // Update document title when manufacturer changes
+ useDocumentTitle(manufacturer?.name || 'Manufacturer Details');
useEffect(() => {
if (slug) {
diff --git a/src/pages/ManufacturerModels.tsx b/src/pages/ManufacturerModels.tsx
index cfe6200a..bdafa48e 100644
--- a/src/pages/ManufacturerModels.tsx
+++ b/src/pages/ManufacturerModels.tsx
@@ -15,6 +15,7 @@ import { AutocompleteSearch } from '@/components/search/AutocompleteSearch';
import { useAuth } from '@/hooks/useAuth';
import { toast } from '@/hooks/use-toast';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
interface RideModelWithCount extends RideModel {
ride_count: number;
@@ -28,6 +29,9 @@ export default function ManufacturerModels() {
const [manufacturer, setManufacturer] = useState
(null);
const [models, setModels] = useState([]);
const [loading, setLoading] = useState(true);
+
+ // Update document title when manufacturer changes
+ useDocumentTitle(manufacturer ? `${manufacturer.name} - Models` : 'Manufacturer Models');
const [searchQuery, setSearchQuery] = useState('');
const [sortBy, setSortBy] = useState('name');
const [filterCategory, setFilterCategory] = useState('all');
diff --git a/src/pages/ManufacturerRides.tsx b/src/pages/ManufacturerRides.tsx
index 7282862e..be1a8d3a 100644
--- a/src/pages/ManufacturerRides.tsx
+++ b/src/pages/ManufacturerRides.tsx
@@ -15,6 +15,7 @@ import { AutocompleteSearch } from '@/components/search/AutocompleteSearch';
import { useAuth } from '@/hooks/useAuth';
import { toast } from '@/hooks/use-toast';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function ManufacturerRides() {
const { manufacturerSlug } = useParams<{ manufacturerSlug: string }>();
@@ -28,6 +29,9 @@ export default function ManufacturerRides() {
const [sortBy, setSortBy] = useState('name');
const [filterCategory, setFilterCategory] = useState('all');
const [filterStatus, setFilterStatus] = useState('all');
+
+ // Update document title when manufacturer changes
+ useDocumentTitle(manufacturer ? `${manufacturer.name} - Rides` : 'Manufacturer Rides');
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
const fetchData = useCallback(async () => {
diff --git a/src/pages/Manufacturers.tsx b/src/pages/Manufacturers.tsx
index 45257e9c..b81a1ed8 100644
--- a/src/pages/Manufacturers.tsx
+++ b/src/pages/Manufacturers.tsx
@@ -23,8 +23,10 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyCreation } from '@/lib/companyHelpers';
import { useAuthModal } from '@/hooks/useAuthModal';
import { getErrorMessage } from '@/lib/errorHandler';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function Manufacturers() {
+ useDocumentTitle('Manufacturers');
const navigate = useNavigate();
const { user } = useAuth();
const { isModerator } = useUserRole();
diff --git a/src/pages/NotFound.tsx b/src/pages/NotFound.tsx
index f9cf7c5a..dc7ada83 100644
--- a/src/pages/NotFound.tsx
+++ b/src/pages/NotFound.tsx
@@ -1,7 +1,9 @@
import { useLocation } from "react-router-dom";
import { useEffect } from "react";
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
const NotFound = () => {
+ useDocumentTitle('404 - Page Not Found');
const location = useLocation();
useEffect(() => {
diff --git a/src/pages/OperatorDetail.tsx b/src/pages/OperatorDetail.tsx
index 138b3fc7..9ad211dd 100644
--- a/src/pages/OperatorDetail.tsx
+++ b/src/pages/OperatorDetail.tsx
@@ -25,6 +25,7 @@ import { submitCompanyUpdate } from '@/lib/companyHelpers';
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function OperatorDetail() {
const { slug } = useParams<{ slug: string }>();
@@ -41,6 +42,9 @@ export default function OperatorDetail() {
const { user } = useAuth();
const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
+
+ // Update document title when operator changes
+ useDocumentTitle(operator?.name || 'Operator Details');
useEffect(() => {
if (slug) {
diff --git a/src/pages/OperatorParks.tsx b/src/pages/OperatorParks.tsx
index c693f4b1..6b76f911 100644
--- a/src/pages/OperatorParks.tsx
+++ b/src/pages/OperatorParks.tsx
@@ -15,6 +15,7 @@ import { ParkFilters } from '@/components/parks/ParkFilters';
import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Grid3X3, List } from 'lucide-react';
import { FilterState, SortState } from './Parks';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
const initialFilters: FilterState = {
search: '',
@@ -44,6 +45,9 @@ export default function OperatorParks() {
const [sort, setSort] = useState(initialSort);
const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid');
const [showFilters, setShowFilters] = useState(false);
+
+ // Update document title when operator changes
+ useDocumentTitle(operator ? `${operator.name} - Parks` : 'Operator Parks');
useEffect(() => {
if (operatorSlug) {
diff --git a/src/pages/Operators.tsx b/src/pages/Operators.tsx
index b930cdeb..e6972deb 100644
--- a/src/pages/Operators.tsx
+++ b/src/pages/Operators.tsx
@@ -24,8 +24,10 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyCreation } from '@/lib/companyHelpers';
import { useAuthModal } from '@/hooks/useAuthModal';
import { getErrorMessage } from '@/lib/errorHandler';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
const Operators = () => {
+ useDocumentTitle('Operators');
const navigate = useNavigate();
const { user } = useAuth();
const { isModerator } = useUserRole();
diff --git a/src/pages/OwnerParks.tsx b/src/pages/OwnerParks.tsx
index 2b981465..3dc1f237 100644
--- a/src/pages/OwnerParks.tsx
+++ b/src/pages/OwnerParks.tsx
@@ -15,6 +15,7 @@ import { ParkFilters } from '@/components/parks/ParkFilters';
import { Tabs, TabsList, TabsTrigger } from '@/components/ui/tabs';
import { Grid3X3, List } from 'lucide-react';
import { FilterState, SortState } from './Parks';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
const initialFilters: FilterState = {
search: '',
@@ -44,6 +45,9 @@ export default function OwnerParks() {
const [sort, setSort] = useState(initialSort);
const [viewMode, setViewMode] = useState<'grid' | 'list'>('grid');
const [showFilters, setShowFilters] = useState(false);
+
+ // Update document title when owner changes
+ useDocumentTitle(owner ? `${owner.name} - Parks` : 'Owner Parks');
useEffect(() => {
if (ownerSlug) {
diff --git a/src/pages/ParkDetail.tsx b/src/pages/ParkDetail.tsx
index 2d88af1e..c0ee50b9 100644
--- a/src/pages/ParkDetail.tsx
+++ b/src/pages/ParkDetail.tsx
@@ -29,6 +29,7 @@ import { Edit } from 'lucide-react';
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function ParkDetail() {
const {
@@ -47,6 +48,10 @@ export default function ParkDetail() {
const [photoCount, setPhotoCount] = useState(0);
const [statsLoading, setStatsLoading] = useState(true);
const { isModerator } = useUserRole();
+
+ // Update document title when park changes
+ useDocumentTitle(park?.name || 'Park Details');
+
const fetchPhotoCount = useCallback(async (parkId: string) => {
try {
const { count, error } = await supabase
diff --git a/src/pages/ParkOwners.tsx b/src/pages/ParkOwners.tsx
index 49848caf..4e4e3048 100644
--- a/src/pages/ParkOwners.tsx
+++ b/src/pages/ParkOwners.tsx
@@ -18,8 +18,10 @@ import { toast } from '@/hooks/use-toast';
import { submitCompanyCreation } from '@/lib/companyHelpers';
import { useAuthModal } from '@/hooks/useAuthModal';
import { getErrorMessage } from '@/lib/errorHandler';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
const ParkOwners = () => {
+ useDocumentTitle('Property Owners');
const navigate = useNavigate();
const { user } = useAuth();
const { isModerator } = useUserRole();
diff --git a/src/pages/ParkRides.tsx b/src/pages/ParkRides.tsx
index 14e1258c..6bd725b4 100644
--- a/src/pages/ParkRides.tsx
+++ b/src/pages/ParkRides.tsx
@@ -16,6 +16,7 @@ import { useAuth } from '@/hooks/useAuth';
import { toast } from '@/hooks/use-toast';
import { getErrorMessage } from '@/lib/errorHandler';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function ParkRides() {
const { parkSlug } = useParams<{ parkSlug: string }>();
@@ -28,6 +29,9 @@ export default function ParkRides() {
const [searchQuery, setSearchQuery] = useState('');
const [sortBy, setSortBy] = useState('name');
const [filterCategory, setFilterCategory] = useState('all');
+
+ // Update document title when park changes
+ useDocumentTitle(park ? `${park.name} - Rides` : 'Park Rides');
const [filterStatus, setFilterStatus] = useState('all');
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
diff --git a/src/pages/Privacy.tsx b/src/pages/Privacy.tsx
index a5da07ec..f462cd04 100644
--- a/src/pages/Privacy.tsx
+++ b/src/pages/Privacy.tsx
@@ -1,6 +1,8 @@
import { Header } from '@/components/layout/Header';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function Privacy() {
+ useDocumentTitle('Privacy Policy');
return (
diff --git a/src/pages/Profile.tsx b/src/pages/Profile.tsx
index fa9fae3c..06c497bf 100644
--- a/src/pages/Profile.tsx
+++ b/src/pages/Profile.tsx
@@ -30,6 +30,7 @@ import { LocationDisplay } from '@/components/profile/LocationDisplay';
import { UserBlockButton } from '@/components/profile/UserBlockButton';
import { PersonalLocationDisplay } from '@/components/profile/PersonalLocationDisplay';
import { useUserRole } from '@/hooks/useUserRole';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
// Activity type definitions
interface SubmissionActivity {
@@ -155,6 +156,9 @@ export default function Profile() {
// User role checking
const { isModerator, loading: rolesLoading } = useUserRole();
+
+ // Update document title when profile changes
+ useDocumentTitle(profile?.username ? `${profile.username}'s Profile` : 'Profile');
// Username validation
const usernameValidation = useUsernameValidation(editForm.username, profile?.username);
diff --git a/src/pages/PropertyOwnerDetail.tsx b/src/pages/PropertyOwnerDetail.tsx
index 201e6a69..b12a891e 100644
--- a/src/pages/PropertyOwnerDetail.tsx
+++ b/src/pages/PropertyOwnerDetail.tsx
@@ -25,6 +25,7 @@ import { submitCompanyUpdate } from '@/lib/companyHelpers';
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function PropertyOwnerDetail() {
const { slug } = useParams<{ slug: string }>();
@@ -41,6 +42,9 @@ export default function PropertyOwnerDetail() {
const { user } = useAuth();
const { isModerator } = useUserRole();
const { requireAuth } = useAuthModal();
+
+ // Update document title when owner changes
+ useDocumentTitle(owner?.name || 'Property Owner Details');
useEffect(() => {
if (slug) {
diff --git a/src/pages/RideDetail.tsx b/src/pages/RideDetail.tsx
index fbf14924..35bf99be 100644
--- a/src/pages/RideDetail.tsx
+++ b/src/pages/RideDetail.tsx
@@ -52,6 +52,7 @@ import { getErrorMessage } from '@/lib/errorHandler';
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityHistoryTabs } from '@/components/history/EntityHistoryTabs';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
// Extended Ride type with additional properties for easier access
interface RideWithParkId extends Ride {
@@ -70,6 +71,9 @@ export default function RideDetail() {
const [isEditModalOpen, setIsEditModalOpen] = useState(false);
const [photoCount, setPhotoCount] = useState
(0);
const [statsLoading, setStatsLoading] = useState(true);
+
+ // Update document title when ride changes
+ useDocumentTitle(ride?.name || 'Ride Details');
useEffect(() => {
if (parkSlug && rideSlug) {
diff --git a/src/pages/RideModelDetail.tsx b/src/pages/RideModelDetail.tsx
index 8de434d0..a9ea51dd 100644
--- a/src/pages/RideModelDetail.tsx
+++ b/src/pages/RideModelDetail.tsx
@@ -22,6 +22,7 @@ import { ManufacturerPhotoGallery } from '@/components/companies/ManufacturerPho
const RideModelForm = lazy(() => import('@/components/admin/RideModelForm').then(m => ({ default: m.RideModelForm })));
import { VersionIndicator } from '@/components/versioning/VersionIndicator';
import { EntityVersionHistory } from '@/components/versioning/EntityVersionHistory';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function RideModelDetail() {
const { manufacturerSlug, modelSlug } = useParams<{ manufacturerSlug: string; modelSlug: string }>();
@@ -33,6 +34,9 @@ export default function RideModelDetail() {
const [rides, setRides] = useState([]);
const [loading, setLoading] = useState(true);
const [isEditModalOpen, setIsEditModalOpen] = useState(false);
+
+ // Update document title when model changes
+ useDocumentTitle(model?.name || 'Ride Model Details');
const [statistics, setStatistics] = useState({ rideCount: 0, photoCount: 0 });
// Fetch technical specifications from relational table
diff --git a/src/pages/RideModelRides.tsx b/src/pages/RideModelRides.tsx
index 60425b81..eea2c954 100644
--- a/src/pages/RideModelRides.tsx
+++ b/src/pages/RideModelRides.tsx
@@ -16,6 +16,7 @@ import { useAuthModal } from '@/hooks/useAuthModal';
import { toast } from '@/hooks/use-toast';
import { getErrorMessage } from '@/lib/errorHandler';
import type { Ride, Company, RideModel } from "@/types/database";
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function RideModelRides() {
const { manufacturerSlug, modelSlug } = useParams<{ manufacturerSlug: string; modelSlug: string }>();
@@ -28,6 +29,9 @@ export default function RideModelRides() {
const [loading, setLoading] = useState(true);
const [searchQuery, setSearchQuery] = useState('');
const [sortBy, setSortBy] = useState('name');
+
+ // Update document title when model changes
+ useDocumentTitle(model ? `${model.name} - Rides` : 'Model Rides');
const [filterCategory, setFilterCategory] = useState('all');
const [filterStatus, setFilterStatus] = useState('all');
const [isCreateModalOpen, setIsCreateModalOpen] = useState(false);
diff --git a/src/pages/Rides.tsx b/src/pages/Rides.tsx
index 086f42a2..ac5b400e 100644
--- a/src/pages/Rides.tsx
+++ b/src/pages/Rides.tsx
@@ -22,8 +22,10 @@ import { useUserRole } from '@/hooks/useUserRole';
import { toast } from '@/hooks/use-toast';
import { getErrorMessage } from '@/lib/errorHandler';
import { useAuthModal } from '@/hooks/useAuthModal';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function Rides() {
+ useDocumentTitle('Rides & Attractions');
const navigate = useNavigate();
const { user } = useAuth();
const { isModerator } = useUserRole();
diff --git a/src/pages/SubmissionGuidelines.tsx b/src/pages/SubmissionGuidelines.tsx
index f23bcfd6..795ee77c 100644
--- a/src/pages/SubmissionGuidelines.tsx
+++ b/src/pages/SubmissionGuidelines.tsx
@@ -2,8 +2,10 @@ import { Header } from '@/components/layout/Header';
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { CheckCircle, AlertTriangle, Camera, Star, MapPin, Settings, Building2, Globe } from 'lucide-react';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function SubmissionGuidelines() {
+ useDocumentTitle('Submission Guidelines');
return (
diff --git a/src/pages/Terms.tsx b/src/pages/Terms.tsx
index dbdd902e..7502daad 100644
--- a/src/pages/Terms.tsx
+++ b/src/pages/Terms.tsx
@@ -1,6 +1,8 @@
import { Header } from '@/components/layout/Header';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function Terms() {
+ useDocumentTitle('Terms of Service');
return (
diff --git a/src/pages/admin/AdminContact.tsx b/src/pages/admin/AdminContact.tsx
index 2982b197..82f26598 100644
--- a/src/pages/admin/AdminContact.tsx
+++ b/src/pages/admin/AdminContact.tsx
@@ -131,6 +131,7 @@ interface EmailThread {
}
export default function AdminContact() {
+ useDocumentTitle('Contact Submissions - Admin');
const queryClient = useQueryClient();
const { theme } = useTheme();
const { isAdmin, loading: rolesLoading } = useUserRole();
diff --git a/src/pages/admin/AdminEmailSettings.tsx b/src/pages/admin/AdminEmailSettings.tsx
index 5d84c317..f67531cb 100644
--- a/src/pages/admin/AdminEmailSettings.tsx
+++ b/src/pages/admin/AdminEmailSettings.tsx
@@ -16,8 +16,10 @@ import { AdminLayout } from '@/components/layout/AdminLayout';
import { useUserRole } from '@/hooks/useUserRole';
import { handleError, handleSuccess } from '@/lib/errorHandler';
import { Alert, AlertDescription } from '@/components/ui/alert';
+import { useDocumentTitle } from '@/hooks/useDocumentTitle';
export default function AdminEmailSettings() {
+ useDocumentTitle('Email Settings - Admin');
const queryClient = useQueryClient();
const { isSuperuser, loading: rolesLoading } = useUserRole();
const [signature, setSignature] = useState('');