Skip to content

Commit 0e482f3

Browse files
authored
Merge pull request #81 from Jambrose777/fixing-bugs-for-NAC
Fixing bugs for nac
2 parents dcbc9eb + 3243940 commit 0e482f3

2 files changed

Lines changed: 44 additions & 23 deletions

File tree

src/containers/PersonalSchedule/utils.ts

Lines changed: 27 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -105,20 +105,24 @@ const getFmcAttemptAssignments = (wcif: Competition, person: Person) => {
105105
return parsed.eventId === '333fm' && parsed.attemptNumber !== null;
106106
});
107107

108-
return fmcAttemptActivities.map(
109-
(
110-
activity,
111-
): Assignment & {
112-
type: 'extra';
113-
activity: Activity;
114-
} => ({
115-
type: 'extra',
116-
assignmentCode: 'competitor',
117-
activityId: activity.id,
118-
stationNumber: null,
119-
activity,
120-
}),
121-
);
108+
const personActivities = person.assignments?.map((ass) => ass.activityId);
109+
110+
return fmcAttemptActivities
111+
.filter((activity) => personActivities?.includes(activity.id))
112+
.map(
113+
(
114+
activity,
115+
): Assignment & {
116+
type: 'extra';
117+
activity: Activity;
118+
} => ({
119+
type: 'extra',
120+
assignmentCode: 'competitor',
121+
activityId: activity.id,
122+
stationNumber: null,
123+
activity,
124+
}),
125+
);
122126
};
123127

124128
export const getAllAssignments = (wcif: Competition, person: Person) => {
@@ -148,14 +152,15 @@ export const getGroupedAssignmentsByDate = (wcif: Competition, person: Person) =
148152

149153
const scheduledDays = allAssignments
150154
.map((a) => {
151-
if (a.type === 'extra') {
152-
return {
153-
approxDateTime: 0,
154-
date: '',
155-
dateParts: [],
156-
assignments: [],
157-
};
158-
}
155+
// Commenting out for NAC26, extra assignments are valid even if the day does not have any other assignments
156+
// if (a.type === 'extra') {
157+
// return {
158+
// approxDateTime: 0,
159+
// date: '',
160+
// dateParts: [],
161+
// assignments: [],
162+
// };
163+
// }
159164

160165
if (!a.activity) {
161166
return {

src/lib/activityCodes.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,10 @@ export const parseActivityCodeFlexible = (
5252
activityCode: string,
5353
): ParsedActivityCode | UnofficialParsedActivityCode => {
5454
const eventId = activityCode.split('-')[0];
55-
if (activityCode.startsWith('other') || !isOfficialEventId(eventId)) {
55+
if (activityCode.startsWith('other')) {
56+
return parseOtherActivityCode(activityCode);
57+
}
58+
if (!isOfficialEventId(eventId)) {
5659
return parseUnofficialActivityCode(activityCode);
5760
}
5861

@@ -62,6 +65,19 @@ export const parseActivityCodeFlexible = (
6265
const normalizeEventId = (eventId: string): string =>
6366
eventId.replace('other-', '').replace('unofficial-', '');
6467

68+
export const parseOtherActivityCode = (activityCode: string): UnofficialParsedActivityCode => {
69+
const regex = /other-(?:(\w+))?(?:-g(\d+))?/;
70+
const [, e, g] = activityCode.match(regex) as string[];
71+
72+
return {
73+
rawEventId: e,
74+
eventId: `other-${e}`,
75+
roundNumber: 1,
76+
groupNumber: g ? parseInt(g, 10) : null,
77+
attemptNumber: null,
78+
};
79+
};
80+
6581
export const parseUnofficialActivityCode = (activityCode: string): UnofficialParsedActivityCode => {
6682
const regex = /^([\w-]+?)(?:-r(\d+))?(?:-g(\d+))?(?:-a(\d+))?$/;
6783
const matches = activityCode.match(regex);

0 commit comments

Comments
 (0)