theming, date, time localisation, additional features, seeding initial cleanup

This commit is contained in:
mikicvi
2025-09-26 21:12:59 +01:00
parent b89d91ade2
commit 22c462c61c
43 changed files with 2647 additions and 550 deletions
@@ -236,13 +236,13 @@ export function AdminAnnouncementManagement() {
const getPriorityColor = (priority: string) => {
switch (priority) {
case 'high':
return 'text-red-600 bg-red-50';
return 'text-destructive bg-destructive/10 dark:bg-destructive/20';
case 'medium':
return 'text-yellow-600 bg-yellow-50';
return 'text-amber-600 bg-amber-50 dark:text-amber-400 dark:bg-amber-950/50';
case 'low':
return 'text-green-600 bg-green-50';
return 'text-green-600 bg-green-50 dark:text-green-400 dark:bg-green-950/50';
default:
return 'text-gray-600 bg-gray-50';
return 'text-muted-foreground bg-muted';
}
};
@@ -387,8 +387,8 @@ export function AdminAnnouncementManagement() {
<TableRow key={announcement.id}>
<TableCell>
<div>
<div className='font-medium'>{announcement.title}</div>
<div className='text-sm text-gray-500 truncate max-w-xs'>
<div className='font-medium text-foreground'>{announcement.title}</div>
<div className='text-sm text-muted-foreground truncate max-w-xs'>
{announcement.content}
</div>
</div>
@@ -420,16 +420,16 @@ export function AdminAnnouncementManagement() {
</TableCell>
<TableCell>
<div className='flex items-center gap-2'>
<Calendar className='h-4 w-4 text-gray-500' />
<Calendar className='h-4 w-4 text-muted-foreground' />
{announcement.expiresAt
? new Date(announcement.expiresAt).toLocaleDateString()
? new Date(announcement.expiresAt).toLocaleDateString('en-IE')
: 'Never'}
</div>
</TableCell>
<TableCell>
<div className='flex items-center gap-2'>
<Calendar className='h-4 w-4 text-gray-500' />
{new Date(announcement.createdAt).toLocaleDateString()}
<Calendar className='h-4 w-4 text-muted-foreground' />
{new Date(announcement.createdAt).toLocaleDateString('en-IE')}
</div>
</TableCell>
<TableCell>
@@ -445,7 +445,7 @@ export function AdminAnnouncementManagement() {
variant='outline'
size='sm'
onClick={() => handleDeleteAnnouncement(announcement.id)}
className='text-red-600 hover:text-red-700'
className='text-destructive hover:text-destructive/90'
>
<Trash2 className='h-4 w-4' />
</Button>
@@ -456,7 +456,7 @@ export function AdminAnnouncementManagement() {
</TableBody>
</Table>
{announcements.length === 0 && (
<div className='text-center py-8 text-gray-500'>
<div className='text-center py-8 text-muted-foreground'>
No announcements found. Create your first announcement!
</div>
)}