mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-22 18:31:13 -05:00
Refactor refresh button functionality
This commit is contained in:
@@ -5,7 +5,7 @@ import { ThemeToggle } from '@/components/theme/ThemeToggle';
|
|||||||
import { AuthButtons } from '@/components/auth/AuthButtons';
|
import { AuthButtons } from '@/components/auth/AuthButtons';
|
||||||
import { useUserRole } from '@/hooks/useUserRole';
|
import { useUserRole } from '@/hooks/useUserRole';
|
||||||
|
|
||||||
export function AdminHeader() {
|
export function AdminHeader({ onRefresh }: { onRefresh?: () => void }) {
|
||||||
const { permissions } = useUserRole();
|
const { permissions } = useUserRole();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -33,7 +33,7 @@ export function AdminHeader() {
|
|||||||
<Button
|
<Button
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
size="sm"
|
size="sm"
|
||||||
onClick={() => window.location.reload()}
|
onClick={onRefresh}
|
||||||
title="Refresh admin data"
|
title="Refresh admin data"
|
||||||
>
|
>
|
||||||
<RefreshCw className="w-4 h-4" />
|
<RefreshCw className="w-4 h-4" />
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useEffect } from 'react';
|
import { useEffect, useState, useCallback } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { Shield, Users, FileText, Flag, AlertCircle } from 'lucide-react';
|
import { Shield, Users, FileText, Flag, AlertCircle } from 'lucide-react';
|
||||||
import { useUserRole } from '@/hooks/useUserRole';
|
import { useUserRole } from '@/hooks/useUserRole';
|
||||||
@@ -15,6 +15,11 @@ export default function Admin() {
|
|||||||
const { user, loading: authLoading } = useAuth();
|
const { user, loading: authLoading } = useAuth();
|
||||||
const { isModerator, loading: roleLoading } = useUserRole();
|
const { isModerator, loading: roleLoading } = useUserRole();
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
const [refreshKey, setRefreshKey] = useState(0);
|
||||||
|
|
||||||
|
const handleRefresh = useCallback(() => {
|
||||||
|
setRefreshKey(prev => prev + 1);
|
||||||
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!authLoading && !roleLoading) {
|
if (!authLoading && !roleLoading) {
|
||||||
@@ -49,7 +54,7 @@ export default function Admin() {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<AdminHeader />
|
<AdminHeader onRefresh={handleRefresh} />
|
||||||
<div className="container mx-auto px-4 py-8">
|
<div className="container mx-auto px-4 py-8">
|
||||||
<div className="mb-8">
|
<div className="mb-8">
|
||||||
<p className="text-muted-foreground">
|
<p className="text-muted-foreground">
|
||||||
@@ -123,11 +128,11 @@ export default function Admin() {
|
|||||||
</TabsList>
|
</TabsList>
|
||||||
|
|
||||||
<TabsContent value="queue">
|
<TabsContent value="queue">
|
||||||
<ModerationQueue />
|
<ModerationQueue key={`moderation-queue-${refreshKey}`} />
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
|
|
||||||
<TabsContent value="reports">
|
<TabsContent value="reports">
|
||||||
<ReportsQueue />
|
<ReportsQueue key={`reports-queue-${refreshKey}`} />
|
||||||
</TabsContent>
|
</TabsContent>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
</CardContent>
|
</CardContent>
|
||||||
@@ -145,7 +150,7 @@ export default function Admin() {
|
|||||||
</CardDescription>
|
</CardDescription>
|
||||||
</CardHeader>
|
</CardHeader>
|
||||||
<CardContent>
|
<CardContent>
|
||||||
<UserManagement />
|
<UserManagement key={`user-management-${refreshKey}`} />
|
||||||
</CardContent>
|
</CardContent>
|
||||||
</Card>
|
</Card>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user