Skip to content

Commit aee58d7

Browse files
Fixed various pull request issues
1 parent 1be2624 commit aee58d7

File tree

3 files changed

+52
-52
lines changed

3 files changed

+52
-52
lines changed

apps/admin-web/src/App.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ const MainContent: React.SFC<{}> = (): JSX.Element => {
2222
return (
2323
<Switch>
2424
<Route exact={true} path="/" component={ToolList} />
25-
<Route path="/events" component={Events} />
26-
<Route path="/data/:eventId" component={EventData} />
25+
<Route path="/events/:eventId" component={EventData} />
26+
<Route path="/events/" component={Events} />
2727
<Route path="/membership" component={Membership} />
2828
<Route path="/redemption" component={RedemptionCodes} />
2929
<Route component={NotFound} />

apps/admin-web/src/screens/EventData/index.tsx

+31-41
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,18 @@ import { Statistic, Row, Col, Table, message } from 'antd';
33
import { ExportToCsv } from "export-to-csv";
44
import { IUser, IEvent, IYearEvent } from "./interfaces";
55
import { QRModal } from "./QRModal"
6-
import { useEventsWithKeyQuery,
7-
useYearEventsQuery } from "../../generated/graphql";
6+
import { EventsWithKeyQueryHookResult,
7+
useEventsWithKeyQuery,
8+
useYearEventsQuery,
9+
YearEventsQueryHookResult} from "../../generated/graphql";
10+
import { RouteComponentProps } from "react-router-dom";
811

9-
const EventData: React.FC<{match: any}> = ({match}: any) => {
10-
const eventUrlKey: string = match.params.eventId;
12+
interface IMatchParams {
13+
eventId: string;
14+
}
15+
16+
const EventData: React.FC<RouteComponentProps<IMatchParams>> = (props) => {
17+
const eventUrlKey: string = props.match.params.eventId;
1118

1219
const [event, setEvent] = useState<IEvent>();
1320
const [attendees, setAttendees] = useState<IUser[]>();
@@ -18,9 +25,6 @@ const EventData: React.FC<{match: any}> = ({match}: any) => {
1825

1926
const [QRVisible, setQRVisible] = useState(false);
2027

21-
const [attendeeEmails, setAttendeeEmails] = useState<string[]>();
22-
const [interestEmails, setInterestEmails] = useState<string[]>();
23-
2428
const [qrKey, setQrKey] = useState<string>();
2529

2630
const csvOptions = {
@@ -33,88 +37,72 @@ const EventData: React.FC<{match: any}> = ({match}: any) => {
3337
title: 'Emails',
3438
useTextFile: false,
3539
useBom: true,
36-
//useKeysAsHeaders: true,
40+
useKeysAsHeaders: true,
3741
headers: ['Emails']
38-
// headers: ['Column 1', 'Column 2', etc...] <-- Won't work with useKeysAsHeaders present!
3942
};
4043

4144
const {
4245
loading: eventLoading,
4346
error: eventError,
4447
data: eventData,
45-
}: any = useEventsWithKeyQuery({pollInterval: 500, variables: { urlKey: eventUrlKey }});
48+
}: EventsWithKeyQueryHookResult = useEventsWithKeyQuery({pollInterval: 500, variables: { urlKey: eventUrlKey }});
4649

4750
const {
4851
loading: yearEventsLoading,
4952
error: yearEventsError,
5053
data: yearEventsData,
51-
}: any = useYearEventsQuery({pollInterval: 500});
54+
}: YearEventsQueryHookResult = useYearEventsQuery({pollInterval: 500});
5255

5356
useEffect(() => {
5457
if (eventLoading)
5558
message.info("Event data loading...");
5659
else if (eventError)
5760
message.info("An error occured loading event data.");
5861
else if (eventData) {
59-
setEvent((eventData.eventsWithKey)[0]);
60-
//message.success("Event data loading complete!");
62+
setEvent((eventData.eventsWithKey)[0] as IEvent);
6163
}
6264
}, [eventData, eventError, eventLoading]);
6365

6466
useEffect(() => {
65-
if (yearEventsLoading) {
66-
//message.info("Year event data loading...");
67-
}
68-
else if (yearEventsError) {
67+
if (yearEventsError) {
6968
message.info("An error occured loading year event data.");
7069
}
7170
else if (yearEventsData) {
72-
setYearEvents(yearEventsData.yearEvents);
73-
//message.success("Event data loading complete!");
71+
setYearEvents(yearEventsData.yearEvents as IYearEvent[]);
7472
}
7573
}, [yearEventsData, yearEventsError, yearEventsLoading]);
7674

7775
useEffect(() => {
78-
if(event != undefined) {
76+
if(event !== undefined) {
7977
setAttendees(event.attendees);
8078
setUsersInterested(event.usersInterested);
8179
}
8280
}, [event]);
8381

8482
useEffect(() => {
85-
if(usersInterested != undefined)
86-
setInterestEmails(usersInterested?.map(usersInterested => usersInterested.email));
87-
}, [usersInterested]);
88-
89-
useEffect(() => {
90-
if(attendees != undefined)
91-
setAttendeeEmails(attendees?.map(attendees => attendees.email));
92-
}, [attendees]);
93-
94-
useEffect(() => {
95-
if(yearEvents != undefined) {
83+
if(yearEvents !== undefined) {
9684
setYearEvents(yearEvents.sort((a,b) => (a.numAttendees > b.numAttendees) ? -1 : ((b.numAttendees > a.numAttendees) ? 1 : 0)));
9785
setAttendancePlace(yearEvents.map(function(e) { return e.urlKey }).indexOf(eventUrlKey) + 1);
9886
}
9987
}, [yearEvents]);
10088

101-
if(eventUrlKey == null)
89+
if(eventUrlKey === null || !event)
10290
return <p>This event does not exist.</p>
10391

10492
const get_ratio: Function = () => {
105-
if(usersInterested != undefined && attendees != undefined && attendees.length != 0)
93+
if(usersInterested !== undefined && attendees !== undefined && attendees.length !== 0)
10694
return (usersInterested.length / attendees.length) * 100
107-
return null
95+
return "N/A"
10896
};
10997

11098
const ordinal_suffix: Function = (num: number) => {
11199
let j = num % 10,
112100
k = num % 100;
113-
if (j == 1 && k != 11)
101+
if (j === 1 && k !== 11)
114102
return "st";
115-
if (j == 2 && k != 12)
103+
if (j === 2 && k !== 12)
116104
return "nd";
117-
if (j == 3 && k != 13)
105+
if (j === 3 && k !== 13)
118106
return "rd";
119107

120108
return "th";
@@ -136,9 +124,9 @@ const EventData: React.FC<{match: any}> = ({match}: any) => {
136124
];
137125

138126
const handleQR: Function = (choice: number) => {
139-
if (choice == 0)
127+
if (choice === 0)
140128
setQrKey("e/" + eventUrlKey);
141-
else if (choice == 1)
129+
else if (choice === 1)
142130
setQrKey("i/" + eventUrlKey);
143131

144132
setQRVisible(true);
@@ -148,14 +136,16 @@ const EventData: React.FC<{match: any}> = ({match}: any) => {
148136
csvOptions.filename = "interest_emails";
149137
csvOptions.title = "Interested Users";
150138
const csvExporter = new ExportToCsv(csvOptions);
151-
csvExporter.generateCsv(interestEmails?.map(interestEmails => ({ interestEmails })));
139+
const columns: any = usersInterested?.map(obj => ({Email: obj.email, Name: obj.firstName + " " + obj.lastName}))
140+
csvExporter.generateCsv(columns);
152141
};
153142

154143
const downloadAttendeeCSV: () => void = (): void => {
155144
csvOptions.filename = "attendee_emails";
156145
csvOptions.title = "Attendees";
157146
const csvExporter = new ExportToCsv(csvOptions);
158-
csvExporter.generateCsv(attendeeEmails?.map(attendeeEmails => ({ attendeeEmails })));
147+
const columns: any = attendees?.map(obj => ({Email: obj.email, Name: obj.firstName + " " + obj.lastName}))
148+
csvExporter.generateCsv(columns);
159149
};
160150

161151
return (

apps/profile-web/src/components/EventRegistration/index.tsx

+19-9
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ const EventRegistration: React.FC<{match: any}> = ({match}: any) => {
7878
//once all mutations/queries are loaded, the actual attendance is tracked
7979
useEffect(() => {
8080
if(curEvents && attendEvent && result.data) {
81-
if(result.data.me.id != null)
82-
if(getEventId(eventUrlKey) != -1) {
81+
if(result.data.me.id !== null)
82+
if(getEventId(eventUrlKey) !== -1) {
8383
attendEvent({
8484
variables: {
8585
eventId: Number(getEventId(eventUrlKey))
@@ -173,6 +173,11 @@ const EventInterest: React.FC<{match: any}> = ({match}: any) => {
173173

174174
const result: any = useMeQuery();
175175

176+
const onRecordInterestError: (e: Error) => void = (e: Error): void => {
177+
message.error("Upload failed. Please try again.");
178+
console.log(e);
179+
};
180+
176181
useEffect(() => {
177182
if (eventLoading) {
178183
//message.info("Event data loading...");
@@ -196,13 +201,18 @@ const EventInterest: React.FC<{match: any}> = ({match}: any) => {
196201
//once all mutations/queries are loaded, the actual attendance is tracked
197202
useEffect(() => {
198203
if(curEvents && recordInterest && result.data) {
199-
if(result.data.me.id != null)
200-
if(getEventId(eventUrlKey) != -1) {
201-
recordInterest({
202-
variables: {
203-
eventId: Number(getEventId(eventUrlKey))
204-
}
205-
});
204+
if(result.data.me.id !== null)
205+
if(getEventId(eventUrlKey) !== -1) {
206+
try {
207+
recordInterest({
208+
variables: {
209+
eventId: Number(getEventId(eventUrlKey))
210+
}
211+
});
212+
}
213+
catch(e) {
214+
onRecordInterestError(e);
215+
}
206216
}
207217
else
208218
message.error("Event does with URL key {" + eventUrlKey + "} does not exist.");

0 commit comments

Comments
 (0)