From 603be6cbd8cbf4bb4018ebdbabdb9877d1e120c6 Mon Sep 17 00:00:00 2001 From: Samuel James Date: Sat, 5 Sep 2026 15:29:00 +0000 Subject: [PATCH] Clean up: Remove component files --- frontend/src/components/common/TaskFields.tsx | 110 ------------------ 1 file changed, 110 deletions(-) delete mode 100644 frontend/src/components/common/TaskFields.tsx 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 ( - - ); -}; - -/** Coloured dot plus label, matching the priority column in the approved mockup. */ -export const PriorityIndicator: React.FC<{ priority: TaskPriority }> = ({ 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)} - - ); -};