diff --git a/src/pages/admin/signups/[id]/list.tsx b/src/pages/admin/signups/[id]/list.tsx
index a3723dc..d3c005b 100644
--- a/src/pages/admin/signups/[id]/list.tsx
+++ b/src/pages/admin/signups/[id]/list.tsx
@@ -26,13 +26,19 @@ const SignupEmailPage: NextPage = () => {
const { id } = router.query;
useEffect(() => {
- const formId = Number(id);
- SignupApi.getForm(formId, true)
- .then((res) => setSignupForm(res));
-
- SignupApi.getSignups(formId).then((res) => setSignups(res));
+ const formId = id && Number(id);
+ if (formId !== undefined && !Number.isNaN(formId)) {
+ SignupApi.getForm(formId, true).then((res) => {
+ setSignupForm(res);
+ });
+ SignupApi.getSignups(formId).then((res) => {
+ setSignups(res);
+ });
+ }
}, [id]);
+ const title = signupForm ? signupForm.title_fi : "Loading...";
+
const confirmDelete = async (signup: Signup, question: any) => {
if (window.confirm(`Delete: ${signup.id}: ${signup.answer[question.id]}; Are you sure?`) === true) {
try {
@@ -45,27 +51,25 @@ const SignupEmailPage: NextPage = () => {
}
};
- const title = signupForm ? signupForm.title_fi : "Loading...";
+ const renderData = () => {
+ if (!signupForm || !signups || signups.length === 0) {
+ return
No signups.
;
+ }
- // TODO: ATM we filter 'info' questions from table here. Maybe remove them from answer JSON altogether?
- const questions = signupForm ? signupForm.questions.filter((q) => q.type !== "info").map((q) => ({
- title: q.title_fi,
- id: q.id,
- })) : [];
+ // TODO: ATM we filter 'info' questions from table here. Maybe remove them from answer JSON altogether?
+ const questions = signupForm ? signupForm.questions.filter((q) => q.type !== "info").map((q) => ({
+ title: q.title_fi,
+ id: q.id,
+ })) : [];
- // Generate 2-dimensional array where rows are signups and columns are answers to questions.
- const CSVData = signups.map((s) => questions.map((q) => s.answer[q.id]));
- // Add reserve signup "header"
- if (signupForm?.quota) {
- CSVData.splice(signupForm.quota, 0, ["RESERVE-SIGNUPS"]);
- }
+ // Generate 2-dimensional array where rows are signups and columns are answers to questions.
+ const CSVData = signups.map((s) => questions.map((q) => s.answer[q.id]));
+ // Add reserve signup "header"
+ if (signupForm?.quota) {
+ CSVData.splice(signupForm.quota, 0, ["RESERVE-SIGNUPS"]);
+ }
- return (
-
-
- {title}
- : Sign-ups
-
+ return (
@@ -81,7 +85,6 @@ const SignupEmailPage: NextPage = () => {
-
{signups.map((s) => (
@@ -99,6 +102,16 @@ const SignupEmailPage: NextPage = () => {
))}
+ );
+ };
+
+ return (
+
+
+ {title}
+ : Sign-ups
+
+ {renderData()}
);
};
diff --git a/src/views/FrontPage/FrontPageView.tsx b/src/views/FrontPage/FrontPageView.tsx
index 3cd2fed..0a3f3c2 100644
--- a/src/views/FrontPage/FrontPageView.tsx
+++ b/src/views/FrontPage/FrontPageView.tsx
@@ -18,16 +18,12 @@ import FrontPageHero from "./FrontPageHero";
// Corporate logos import
const ABB = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/abb.jpg";
const Caruna = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/caruna.jpg";
-const Eaton = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/eaton.jpg";
const Ensto = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/ensto.jpg";
const eSett = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/esett.jpg";
const Fingrid = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/fingrid.jpg";
-const NRCGroup = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/nrcgroup.jpg";
const Okmetic = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/okmetic.jpg";
-const Ramboll = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/ramboll.png";
-const Helmet = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/helmet.png";
-const Siemens = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/siemens.png";
-const Afry = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/afry.png";
+const Nokia = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/nokia.jpg";
+const Granlund = "https://static.sahkoinsinoorikilta.fi/img/corporate_logos/granlund.jpg";
interface FrontPageViewProps {
events: Event[];
@@ -97,11 +93,8 @@ const FrontPageView: React.FC = ({ events, feed }) => (
-
-
-
-
-
+
+
@@ -115,14 +108,8 @@ const FrontPageView: React.FC = ({ events, feed }) => (
-
-
-
-
-
-
-
-
+
+
Haluatko kuulla lisää yhteistyöstä kanssamme?