Refactor refresh button functionality

This commit is contained in:
gpt-engineer-app[bot]
2025-09-28 19:09:02 +00:00
parent 661bf77d95
commit 54e183dad7
2 changed files with 12 additions and 7 deletions

View File

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

View File

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