From 0d46f5bd408474cb26ad67ad758ba5ef8d74d7c2 Mon Sep 17 00:00:00 2001 From: Cailyn Sinclair Date: Sat, 30 May 2026 14:11:13 -0700 Subject: [PATCH 1/4] Change shortName for Megaminx from 'Minx' to 'Mega' --- src/lib/events.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/events.ts b/src/lib/events.ts index ffc959d..20d7f1e 100644 --- a/src/lib/events.ts +++ b/src/lib/events.ts @@ -20,7 +20,7 @@ export const events: { { id: '333bf', name: '3x3x3 Blindfolded', shortName: '3BLD' }, { id: '333fm', name: '3x3x3 Fewest Moves', shortName: 'FMC' }, { id: '333oh', name: '3x3x3 One-Handed', shortName: '3OH' }, - { id: 'minx', name: 'Megaminx', shortName: 'Minx' }, + { id: 'minx', name: 'Megaminx', shortName: 'Mega' }, { id: 'pyram', name: 'Pyraminx', shortName: 'Pyra' }, { id: 'clock', name: 'Clock', shortName: 'Clock' }, { id: 'skewb', name: 'Skewb', shortName: 'Skewb' }, From 955c0c4e499b0c9731c802b8cd88a265c7d04849 Mon Sep 17 00:00:00 2001 From: Jacob Ambrose Date: Sat, 27 Jun 2026 16:12:31 -0400 Subject: [PATCH 2/4] Removed filtering extra assignemnt types for calculating days to show --- src/containers/PersonalSchedule/utils.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/containers/PersonalSchedule/utils.ts b/src/containers/PersonalSchedule/utils.ts index c005759..74b2555 100644 --- a/src/containers/PersonalSchedule/utils.ts +++ b/src/containers/PersonalSchedule/utils.ts @@ -148,14 +148,15 @@ export const getGroupedAssignmentsByDate = (wcif: Competition, person: Person) = const scheduledDays = allAssignments .map((a) => { - if (a.type === 'extra') { - return { - approxDateTime: 0, - date: '', - dateParts: [], - assignments: [], - }; - } + // Commenting out for NAC26, extra assignments are valid even if the day does not have any other assignments + // if (a.type === 'extra') { + // return { + // approxDateTime: 0, + // date: '', + // dateParts: [], + // assignments: [], + // }; + // } if (!a.activity) { return { From 7fabdf744a85052338990106e7aa59ac447afe8f Mon Sep 17 00:00:00 2001 From: Jacob Ambrose Date: Sat, 27 Jun 2026 16:17:21 -0400 Subject: [PATCH 3/4] fixed other activities that are not unofficial events --- src/lib/activityCodes.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib/activityCodes.ts b/src/lib/activityCodes.ts index 78f2f2a..bf1f033 100644 --- a/src/lib/activityCodes.ts +++ b/src/lib/activityCodes.ts @@ -52,7 +52,10 @@ export const parseActivityCodeFlexible = ( activityCode: string, ): ParsedActivityCode | UnofficialParsedActivityCode => { const eventId = activityCode.split('-')[0]; - if (activityCode.startsWith('other') || !isOfficialEventId(eventId)) { + if (activityCode.startsWith('other')) { + return parseOtherActivityCode(activityCode); + } + if (!isOfficialEventId(eventId)) { return parseUnofficialActivityCode(activityCode); } @@ -62,6 +65,19 @@ export const parseActivityCodeFlexible = ( const normalizeEventId = (eventId: string): string => eventId.replace('other-', '').replace('unofficial-', ''); +export const parseOtherActivityCode = (activityCode: string): UnofficialParsedActivityCode => { + const regex = /other-(?:(\w+))?(?:-g(\d+))?/; + const [, e, g] = activityCode.match(regex) as string[]; + + return { + rawEventId: e, + eventId: `other-${e}`, + roundNumber: 1, + groupNumber: g ? parseInt(g, 10) : null, + attemptNumber: null, + }; +}; + export const parseUnofficialActivityCode = (activityCode: string): UnofficialParsedActivityCode => { const regex = /^([\w-]+?)(?:-r(\d+))?(?:-g(\d+))?(?:-a(\d+))?$/; const matches = activityCode.match(regex); From 32439403f66287a3164bccb4ea7075cc317521ab Mon Sep 17 00:00:00 2001 From: Jacob Ambrose Date: Sat, 27 Jun 2026 16:19:10 -0400 Subject: [PATCH 4/4] fixed duplicated fmc assignments due to parent/child relationships. Match assignment to persons actual assignment --- src/containers/PersonalSchedule/utils.ts | 32 +++++++++++++----------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/containers/PersonalSchedule/utils.ts b/src/containers/PersonalSchedule/utils.ts index 74b2555..99cf80d 100644 --- a/src/containers/PersonalSchedule/utils.ts +++ b/src/containers/PersonalSchedule/utils.ts @@ -105,20 +105,24 @@ const getFmcAttemptAssignments = (wcif: Competition, person: Person) => { 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, - }), - ); + const personActivities = person.assignments?.map((ass) => ass.activityId); + + return fmcAttemptActivities + .filter((activity) => personActivities?.includes(activity.id)) + .map( + ( + activity, + ): Assignment & { + type: 'extra'; + activity: Activity; + } => ({ + type: 'extra', + assignmentCode: 'competitor', + activityId: activity.id, + stationNumber: null, + activity, + }), + ); }; export const getAllAssignments = (wcif: Competition, person: Person) => {