website refactor
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
'use client';
|
||||
|
||||
import React from 'react';
|
||||
import { Box } from '@/ui/Box';
|
||||
import { Stack } from '@/ui/Stack';
|
||||
import { Text } from '@/ui/Text';
|
||||
import { Surface } from '@/ui/Surface';
|
||||
import { Icon } from '@/ui/Icon';
|
||||
import { Clock, ShieldAlert, MessageSquare } from 'lucide-react';
|
||||
import { Button } from '@/ui/Button';
|
||||
import { Stack } from '@/ui/Stack';
|
||||
import { Card } from '@/ui/Card';
|
||||
|
||||
interface Protest {
|
||||
id: string;
|
||||
@@ -26,34 +25,34 @@ interface StewardingQueuePanelProps {
|
||||
|
||||
export function StewardingQueuePanel({ protests, onReview }: StewardingQueuePanelProps) {
|
||||
return (
|
||||
<Surface variant="dark" border rounded="lg" overflow="hidden">
|
||||
<Box px={6} py={4} borderBottom borderColor="border-charcoal-outline" bg="bg-iron-gray/20">
|
||||
<Card variant="outline" p={0} rounded="lg" overflow="hidden" className="bg-graphite-black">
|
||||
<Stack px={6} py={4} borderBottom borderColor="border-charcoal-outline" bg="bg-iron-gray/20">
|
||||
<Stack direction="row" align="center" justify="between">
|
||||
<Stack direction="row" align="center" gap={2}>
|
||||
<Icon icon={ShieldAlert} size={4} color="text-error-red" />
|
||||
<Text weight="bold" letterSpacing="wider" size="sm" display="block">
|
||||
<Text weight="bold" letterSpacing="wider" size="sm" block>
|
||||
STEWARDING QUEUE
|
||||
</Text>
|
||||
</Stack>
|
||||
<Box px={2} py={0.5} rounded="md" bg="bg-error-red/10" border borderColor="border-error-red/20">
|
||||
<Stack px={2} py={0.5} rounded="md" bg="bg-error-red/10" border borderColor="border-error-red/20">
|
||||
<Text size="xs" color="text-error-red" weight="bold">
|
||||
{protests.filter(p => p.status === 'pending').length} Pending
|
||||
</Text>
|
||||
</Box>
|
||||
</Stack>
|
||||
</Stack>
|
||||
</Box>
|
||||
</Stack>
|
||||
|
||||
<Stack gap={0}>
|
||||
{protests.length === 0 ? (
|
||||
<Box py={12} center>
|
||||
<Stack py={12} align="center" justify="center">
|
||||
<Stack align="center" gap={3}>
|
||||
<Icon icon={ShieldAlert} size={8} color="text-gray-700" />
|
||||
<Text color="text-gray-500">No active protests in the queue.</Text>
|
||||
</Stack>
|
||||
</Box>
|
||||
</Stack>
|
||||
) : (
|
||||
protests.map((protest) => (
|
||||
<Box key={protest.id} p={6} borderBottom borderColor="border-charcoal-outline" hoverBg="bg-white/5" transition>
|
||||
<Stack key={protest.id} p={6} borderBottom borderColor="border-charcoal-outline" className="transition-colors hover:bg-white/5">
|
||||
<Stack direction={{ base: 'col', md: 'row' }} justify="between" align="start" gap={4}>
|
||||
<Stack gap={3} flexGrow={1}>
|
||||
<Stack direction="row" align="center" gap={2}>
|
||||
@@ -61,7 +60,7 @@ export function StewardingQueuePanel({ protests, onReview }: StewardingQueuePane
|
||||
<Text size="xs" color="text-gray-500" weight="bold" letterSpacing="widest">
|
||||
{protest.raceName.toUpperCase()}
|
||||
</Text>
|
||||
<Box w={1} h={1} rounded="full" bg="bg-gray-700" />
|
||||
<Stack w="1" h="1" rounded="full" bg="bg-gray-700">{null}</Stack>
|
||||
<Stack direction="row" align="center" gap={1.5}>
|
||||
<Icon icon={Clock} size={3} color="text-gray-600" />
|
||||
<Text size="xs" color="text-gray-500">
|
||||
@@ -70,7 +69,7 @@ export function StewardingQueuePanel({ protests, onReview }: StewardingQueuePane
|
||||
</Stack>
|
||||
</Stack>
|
||||
|
||||
<Box>
|
||||
<Stack>
|
||||
<Stack direction="row" align="center" gap={2} wrap>
|
||||
<Text weight="bold" color="text-white">{protest.protestingDriver}</Text>
|
||||
<Text size="xs" color="text-gray-600" weight="bold">VS</Text>
|
||||
@@ -79,7 +78,7 @@ export function StewardingQueuePanel({ protests, onReview }: StewardingQueuePane
|
||||
<Text size="sm" color="text-gray-400" mt={2} lineClamp={2}>
|
||||
“{protest.description}”
|
||||
</Text>
|
||||
</Box>
|
||||
</Stack>
|
||||
</Stack>
|
||||
|
||||
<Stack direction="row" align="center" gap={3} w={{ base: 'full', md: 'auto' }}>
|
||||
@@ -95,11 +94,11 @@ export function StewardingQueuePanel({ protests, onReview }: StewardingQueuePane
|
||||
</Button>
|
||||
</Stack>
|
||||
</Stack>
|
||||
</Box>
|
||||
</Stack>
|
||||
))
|
||||
)}
|
||||
</Stack>
|
||||
</Surface>
|
||||
</Card>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -112,6 +111,6 @@ function StatusIndicator({ status }: { status: Protest['status'] }) {
|
||||
};
|
||||
|
||||
return (
|
||||
<Box w={2} h={2} rounded="full" bg={colors[status]} animate={status === 'under_review' ? 'pulse' : 'none'} />
|
||||
<Stack w="2" h="2" rounded="full" bg={colors[status]} {...({ animate: status === 'under_review' ? 'pulse' : 'none' } as any)}>{null}</Stack>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user