diff --git a/frontend/src/components/common/TaskFields.tsx b/frontend/src/components/common/TaskFields.tsx
deleted file mode 100644
index bea7be9..0000000
--- a/frontend/src/components/common/TaskFields.tsx
+++ /dev/null
@@ -1,110 +0,0 @@
-import React from 'react';
-import { format, isBefore, parseISO, startOfToday } from 'date-fns';
-import {
- PRIORITY_LABELS,
- STATUS_LABELS,
- TASK_STATUSES,
- TaskPriority,
- TaskStatus,
- User,
-} from '../../types';
-
-/** Initials avatar. Falls back to a neutral glyph when a task is unassigned. */
-export const UserAvatar: React.FC<{ user?: User; size?: 'sm' | 'md' | 'lg' }> = ({
- user,
- size = 'md',
-}) => {
- const initials = user
- ? user.full_name
- .split(' ')
- .filter(Boolean)
- .map((part) => part[0])
- .join('')
- .slice(0, 2)
- .toUpperCase()
- : '?';
-
- return (
-
- {initials}
-
- );
-};
-
-/** Coloured dot plus label, matching the priority column in the approved mockup. */
-export const PriorityIndicator: React.FC<{ priority: TaskPriority }> = ({ priority }) => (
-
-
- {PRIORITY_LABELS[priority]}
-
-);
-
-/**
- * Status pill that is also the control for changing status. A native select keeps
- * keyboard and screen reader behaviour correct for free.
- */
-export const StatusSelect: React.FC<{
- status: TaskStatus;
- taskTitle: string;
- disabled?: boolean;
- onChange: (status: TaskStatus) => void;
-}> = ({ status, taskTitle, disabled = false, onChange }) => (
-
-
-
-);
-
-/** Assignee cell: avatar plus shortened name, or an explicit unassigned state. */
-export const AssigneeLabel: React.FC<{ user?: User }> = ({ user }) => {
- if (!user) {
- return Unassigned;
- }
-
- const [first, ...rest] = user.full_name.split(' ');
- const last = rest.length > 0 ? `${rest[rest.length - 1][0]}.` : '';
-
- return (
-
-
- {`${first} ${last}`.trim()}
-
- );
-};
-
-const parseDue = (value?: string): Date | null => {
- if (!value) {
- return null;
- }
- const parsed = parseISO(value);
- return Number.isNaN(parsed.getTime()) ? null : parsed;
-};
-
-/** Due date in the mockup's "Oct 15, 2023" format, flagged when overdue. */
-export const DueDate: React.FC<{ value?: string }> = ({ value }) => {
- const date = parseDue(value);
-
- if (!date) {
- return No due date;
- }
-
- const overdue = isBefore(date, startOfToday());
-
- return (
-
-
- {overdue && (overdue)}
-
- );
-};