From bca8876775fb5b9ca0213f8737ed69059d9f9f8d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 15:17:38 +0000 Subject: [PATCH 1/5] fix: show FMC attempt activities for registered competitors without group assignments Agent-Logs-Url: https://github.com/coder13/Competitor-groups/sessions/cebd1b6a-e202-4765-907c-77cadcf9012c --- src/containers/PersonalSchedule/utils.ts | 55 +++++++++++++++++++++--- 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/src/containers/PersonalSchedule/utils.ts b/src/containers/PersonalSchedule/utils.ts index 4b2303e..e4ebdb9 100644 --- a/src/containers/PersonalSchedule/utils.ts +++ b/src/containers/PersonalSchedule/utils.ts @@ -17,13 +17,24 @@ export const getNormalAssignments = (wcif: Competition, person: Person) => { ...assignment, activity: allActivities.find(({ id }) => id === assignment.activityId), })) - .filter( - (assignment) => - !( - assignment.activity?.activityCode === 'other-multi' && - assignment.assignmentCode === 'competitor' - ), - ) + .filter((assignment) => { + const activityCode = assignment.activity?.activityCode || ''; + const parsed = parseActivityCodeFlexible(activityCode); + if ( + assignment.activity?.activityCode === 'other-multi' && + assignment.assignmentCode === 'competitor' + ) { + return false; + } + if ( + parsed.eventId === '333fm' && + parsed.attemptNumber !== null && + assignment.assignmentCode === 'competitor' + ) { + return false; + } + return true; + }) .sort((a, b) => byDate(a.activity, b.activity)) : []; @@ -85,15 +96,45 @@ const getCubeSubmissionAssignments = (wcif: Competition, person: Person) => { ); }; +const getFmcAttemptAssignments = (wcif: Competition, person: Person) => { + const allActivities = getAllActivities(wcif); + + if (!person.registration?.eventIds.includes('333fm')) { + return []; + } + + const fmcAttemptActivities = allActivities.filter((activity) => { + const parsed = parseActivityCodeFlexible(activity.activityCode); + return parsed.eventId === '333fm' && parsed.attemptNumber !== null; + }); + + return fmcAttemptActivities.map( + ( + activity, + ): Assignment & { + type: 'extra'; + activity: Activity; + } => ({ + type: 'extra', + assignmentCode: 'competitor', + activityId: activity.id, + stationNumber: null, + activity, + }), + ); +}; + export const getAllAssignments = (wcif: Competition, person: Person) => { const normalAssignments = getNormalAssignments(wcif, person); const extraAssignments = getExtraAssignments(person); const mbldCubeSubmissionAssignments = getCubeSubmissionAssignments(wcif, person); + const fmcAttemptAssignments = getFmcAttemptAssignments(wcif, person); const allAssignments = [ ...normalAssignments, ...extraAssignments, ...mbldCubeSubmissionAssignments, + ...fmcAttemptAssignments, ].sort((a, b) => byDate(a.activity, b.activity)); return allAssignments; From c022300f926c7d4c4dc1c8198972237a463aaa1d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 15:19:14 +0000 Subject: [PATCH 2/5] refactor: parse activityCode only when needed in getNormalAssignments filter Agent-Logs-Url: https://github.com/coder13/Competitor-groups/sessions/cebd1b6a-e202-4765-907c-77cadcf9012c --- src/containers/PersonalSchedule/utils.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/containers/PersonalSchedule/utils.ts b/src/containers/PersonalSchedule/utils.ts index e4ebdb9..c005759 100644 --- a/src/containers/PersonalSchedule/utils.ts +++ b/src/containers/PersonalSchedule/utils.ts @@ -18,20 +18,17 @@ export const getNormalAssignments = (wcif: Competition, person: Person) => { activity: allActivities.find(({ id }) => id === assignment.activityId), })) .filter((assignment) => { - const activityCode = assignment.activity?.activityCode || ''; - const parsed = parseActivityCodeFlexible(activityCode); if ( assignment.activity?.activityCode === 'other-multi' && assignment.assignmentCode === 'competitor' ) { return false; } - if ( - parsed.eventId === '333fm' && - parsed.attemptNumber !== null && - assignment.assignmentCode === 'competitor' - ) { - return false; + if (assignment.assignmentCode === 'competitor') { + const parsed = parseActivityCodeFlexible(assignment.activity?.activityCode || ''); + if (parsed.eventId === '333fm' && parsed.attemptNumber !== null) { + return false; + } } return true; }) From 47d3d756bb7193475dd03a9cedcf1c995c64cc47 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 15:35:34 +0000 Subject: [PATCH 3/5] fix: show activity name for FMC attempt entries in personal schedule Agent-Logs-Url: https://github.com/coder13/Competitor-groups/sessions/f85b3e5e-9cc5-4f60-b1ac-625893f5c500 --- src/containers/PersonalSchedule/Assignments.tsx | 8 +++++++- .../PersonalExtraAssignment.tsx | 17 ++++++++++++++--- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/containers/PersonalSchedule/Assignments.tsx b/src/containers/PersonalSchedule/Assignments.tsx index 63df975..2068e9b 100644 --- a/src/containers/PersonalSchedule/Assignments.tsx +++ b/src/containers/PersonalSchedule/Assignments.tsx @@ -4,12 +4,13 @@ import { useTranslation } from 'react-i18next'; import { useCollapse } from '@/hooks/UseCollapse'; import { useNow } from '@/hooks/useNow/useNow'; import { parseActivityCodeFlexible } from '@/lib/activityCodes'; +import { isOfficialEventId } from '@/lib/events'; import { isActivityWithRoomOrParent } from '@/lib/typeguards'; import { byDate, roundTime } from '@/lib/utils'; import { getRoomData, hasMultipleScheduleLocations } from '../../lib/activities'; import { ExtraAssignment } from './PersonalExtraAssignment'; import { PersonalNormalAssignment } from './PersonalNormalAssignment'; -import { getGroupedAssignmentsByDate } from './utils'; +import { formatBriefActivityName, getGroupedAssignmentsByDate } from './utils'; export interface AssignmentsProps { wcif: Competition; @@ -126,12 +127,17 @@ export function Assignments({ wcif, person, showStationNumber }: AssignmentsProp ? activity.parent?.room : undefined; if (assignment.type === 'extra') { + const parsed = parseActivityCodeFlexible(activity.activityCode); + const activityName = isOfficialEventId(parsed.eventId) + ? formatBriefActivityName(activity) + : undefined; return ( - - {formattedStartTime} - {formattedEndTime} - + {activityName ? ( + <> + {activityName} + + {formattedStartTime} - {formattedEndTime} + + + ) : ( + + {formattedStartTime} - {formattedEndTime} + + )} {worldsAssignmentMap[assignment.assignmentCode] || assignment.assignmentCode} From eff8a079cc5c8fd6dc13cb5803023c5fe5e2f702 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 15:44:48 +0000 Subject: [PATCH 4/5] fix: FMC/MBLD extra rows show start time only, Submit Multi Cubes keeps time range Agent-Logs-Url: https://github.com/coder13/Competitor-groups/sessions/53b8493b-45bd-46da-b9b4-d0d29efd555b --- src/containers/PersonalSchedule/PersonalExtraAssignment.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx b/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx index fa34315..712aa9e 100644 --- a/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx +++ b/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx @@ -51,9 +51,7 @@ export const ExtraAssignment = ({ {activityName ? ( <> {activityName} - - {formattedStartTime} - {formattedEndTime} - + {formattedStartTime} ) : ( From b46049c17856bcd83a86931e90ae3d1dd8738882 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 4 May 2026 15:54:45 +0000 Subject: [PATCH 5/5] feat: use AssignmentLabel pill for competitor code in ExtraAssignment Agent-Logs-Url: https://github.com/coder13/Competitor-groups/sessions/84f8058f-8090-4db3-9870-0b329ff694f9 --- .../PersonalSchedule/PersonalExtraAssignment.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx b/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx index 712aa9e..6bac747 100644 --- a/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx +++ b/src/containers/PersonalSchedule/PersonalExtraAssignment.tsx @@ -1,4 +1,6 @@ +import { AssignmentCode } from '@wca/helpers'; import classNames from 'classnames'; +import { AssignmentLabel } from '@/components'; import { BaseAssignmentPill } from '@/components/Pill'; import { worldsAssignmentMap } from './constants'; @@ -59,7 +61,11 @@ export const ExtraAssignment = ({ )} - {worldsAssignmentMap[assignment.assignmentCode] || assignment.assignmentCode} + {worldsAssignmentMap[assignment.assignmentCode] ? ( + worldsAssignmentMap[assignment.assignmentCode] + ) : ( + + )} {room ? (