fix Admin Dashboar / rm user notification
This commit is contained in:
@@ -331,6 +331,38 @@ function AdminDashboard({ token }) {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{activeTab === 'visitors' && (
|
||||||
|
<div className="bg-slate-800 rounded-2xl p-6 border border-slate-700">
|
||||||
|
<h2 className="text-xl font-bold mb-6">Visitor Approvals</h2>
|
||||||
|
|
||||||
|
{Object.values(activePeople.filter(p => p.status === 'PENDING').reduce((acc, p) => {
|
||||||
|
const uId = p.addedById || 0;
|
||||||
|
if (!acc[uId]) acc[uId] = { user: p.addedBy?.username || 'Unknown', userId: uId, items: [] };
|
||||||
|
acc[uId].items.push(p);
|
||||||
|
return acc;
|
||||||
|
}, {})).map(group => (
|
||||||
|
<div key={group.userId} className="mb-6 bg-slate-900 p-4 rounded-xl border border-slate-700">
|
||||||
|
<div className="flex justify-between items-center mb-4 border-b border-slate-700 pb-2">
|
||||||
|
<h3 className="font-bold text-lg text-purple-400">User: {group.user}</h3>
|
||||||
|
<button onClick={() => handleBulkApprove(group.userId)} className="bg-green-600 hover:bg-green-500 px-4 py-1 rounded text-sm font-bold">
|
||||||
|
Approve All ({group.items.length})
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div className="space-y-2">
|
||||||
|
{group.items.map(p => (
|
||||||
|
<div key={p.id} className="flex justify-between text-sm text-slate-300">
|
||||||
|
<span>{p.name} ({p.rut})</span>
|
||||||
|
<span>{parseInt((new Date(p.endDate) - new Date(p.startDate)) / (1000 * 60 * 60 * 24))} Days</span>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
|
||||||
|
{activePeople.filter(p => p.status === 'PENDING').length === 0 && <p className="text-slate-500">No pending visitors.</p>}
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ function UserDashboard({ token, username }) {
|
|||||||
});
|
});
|
||||||
setNewPerson({ name: '', rut: '', durationDays: 1 });
|
setNewPerson({ name: '', rut: '', durationDays: 1 });
|
||||||
fetchPeople();
|
fetchPeople();
|
||||||
alert('Person registered! Waiting for admin approval.');
|
// Alert removed for better UX
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
alert('Error: ' + (err.response?.data?.error || err.message));
|
alert('Error: ' + (err.response?.data?.error || err.message));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user