fix(audit-wave-9): adopt StatusPill for berth + user status badges
- Extend StatusPill with berth (available/under_offer/sold) and user (enabled/disabled) variants so every "this thing is in state X" pill shares one primitive and palette. - Swap berth-card, berth-detail-header, berth-columns from ad-hoc bg-green-100 / bg-yellow-100 / bg-red-100 Tailwind tuples to <StatusPill status="...">. - Swap UserList Active/Disabled <Badge> and user-card Inactive pill to StatusPill; Super-Admin chip kept as a domain-specific accent (violet). Closes ui/ux M1+M2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -12,6 +12,7 @@ import {
|
||||
DropdownMenuTrigger,
|
||||
} from '@/components/ui/dropdown-menu';
|
||||
import { ConfirmationDialog } from '@/components/shared/confirmation-dialog';
|
||||
import { StatusPill } from '@/components/ui/status-pill';
|
||||
import {
|
||||
ListCard,
|
||||
ListCardAvatar,
|
||||
@@ -169,13 +170,9 @@ export function UserCard({
|
||||
|
||||
{/* Status + super-admin pills */}
|
||||
<div className="mt-1.5 flex flex-wrap items-center gap-x-2 gap-y-1">
|
||||
{!user.isActive ? (
|
||||
<span className="inline-flex items-center rounded-full bg-slate-200 px-2 py-0.5 text-xs font-medium text-slate-700">
|
||||
Inactive
|
||||
</span>
|
||||
) : null}
|
||||
{!user.isActive ? <StatusPill status="disabled">Disabled</StatusPill> : null}
|
||||
{user.isSuperAdmin ? (
|
||||
<span className="inline-flex items-center rounded-full bg-violet-100 px-2 py-0.5 text-xs font-medium text-violet-700">
|
||||
<span className="inline-flex items-center rounded-md border border-violet-200 bg-violet-50 px-2 py-0.5 text-xs font-medium text-violet-700">
|
||||
Super Admin
|
||||
</span>
|
||||
) : null}
|
||||
|
||||
@@ -11,6 +11,7 @@ import { ConfirmationDialog } from '@/components/shared/confirmation-dialog';
|
||||
import { PermissionGate } from '@/components/shared/permission-gate';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Badge } from '@/components/ui/badge';
|
||||
import { StatusPill } from '@/components/ui/status-pill';
|
||||
import { apiFetch } from '@/lib/api/client';
|
||||
import { formatRole } from '@/lib/constants';
|
||||
import { UserCard } from './user-card';
|
||||
@@ -98,15 +99,15 @@ export function UserList() {
|
||||
header: 'Status',
|
||||
cell: ({ row }) =>
|
||||
row.original.isActive ? (
|
||||
<Badge variant="default" className="bg-green-600">
|
||||
<ShieldCheck className="mr-1 h-3 w-3" />
|
||||
<StatusPill status="enabled">
|
||||
<ShieldCheck className="h-3 w-3" aria-hidden />
|
||||
Active
|
||||
</Badge>
|
||||
</StatusPill>
|
||||
) : (
|
||||
<Badge variant="destructive">
|
||||
<ShieldOff className="mr-1 h-3 w-3" />
|
||||
<StatusPill status="disabled">
|
||||
<ShieldOff className="h-3 w-3" aria-hidden />
|
||||
Disabled
|
||||
</Badge>
|
||||
</StatusPill>
|
||||
),
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user