fix: Standardize card/list action buttons and hover states (#51) #52

Merged
egullickson merged 3 commits from issue-51-standardize-action-buttons into main 2026-01-18 18:42:53 +00:00
Showing only changes of commit 5ad5ea12e6 - Show all commits

View File

@@ -12,10 +12,13 @@ import {
useMediaQuery,
} from '@mui/material';
import VisibilityIcon from '@mui/icons-material/Visibility';
import EditIcon from '@mui/icons-material/Edit';
import DeleteIcon from '@mui/icons-material/Delete';
import { useNavigate } from 'react-router-dom';
import { AddDocumentDialog } from '../components/AddDocumentDialog';
import { EditDocumentDialog } from '../components/EditDocumentDialog';
import { ExpirationBadge } from '../components/ExpirationBadge';
import type { DocumentRecord } from '../types/documents.types';
import { DocumentCardMetadata } from '../components/DocumentCardMetadata';
import { useVehicles } from '../../vehicles/hooks/useVehicles';
import { getVehicleLabel } from '../utils/vehicleLabel';
@@ -27,6 +30,7 @@ export const DocumentsPage: React.FC = () => {
const navigate = useNavigate();
const removeDoc = useDeleteDocument();
const [isAddOpen, setIsAddOpen] = React.useState(false);
const [editingDoc, setEditingDoc] = React.useState<DocumentRecord | null>(null);
const theme = useTheme();
const isMobile = useMediaQuery(theme.breakpoints.down('sm'));
@@ -100,6 +104,13 @@ export const DocumentsPage: React.FC = () => {
</Button>
</Box>
<AddDocumentDialog open={isAddOpen} onClose={() => setIsAddOpen(false)} />
{editingDoc && (
<EditDocumentDialog
open={!!editingDoc}
onClose={() => setEditingDoc(null)}
document={editingDoc}
/>
)}
{isLoading && (
<Box sx={{ display: 'flex', justifyContent: 'center', py: 6 }}>
@@ -235,6 +246,27 @@ export const DocumentsPage: React.FC = () => {
>
<VisibilityIcon fontSize={isMobile ? 'medium' : 'small'} />
</IconButton>
<IconButton
size={isMobile ? 'medium' : 'small'}
onClick={() => setEditingDoc(doc)}
sx={{
color: 'text.secondary',
minWidth: isMobile ? 48 : 'auto',
minHeight: isMobile ? 48 : 'auto',
'&:hover': {
backgroundColor: 'primary.main',
color: 'white',
},
...(isMobile && {
border: '1px solid',
borderColor: 'divider',
borderRadius: 2,
}),
}}
title="Edit"
>
<EditIcon fontSize={isMobile ? 'medium' : 'small'} />
</IconButton>
<IconButton
size={isMobile ? 'medium' : 'small'}
onClick={() => removeDoc.mutate(doc.id)}