Merge branch 'master' into 'production'

Prod deploy: Package updates

See merge request sahkoinsinoorikilta/vtmk/web2.0-frontend!92
This commit is contained in:
Ilari Ojakorpi
2022-01-17 14:10:26 +00:00
16 changed files with 969 additions and 2484 deletions
+7 -7
View File
@@ -8,7 +8,7 @@ stages:
- deploy
install:
image: node:14
image: node:16
stage: setup
script:
- npm ci
@@ -21,34 +21,34 @@ install:
expire_in: 1 week
audit:
image: node:14
image: node:16
needs: ["install"]
stage: audit
script:
- npm audit --audit-level=critical
es:lint:
image: node:14
image: node:16
needs: ["install"]
stage: lint
script:
- npm run lint:es
css:lint:
image: node:14
image: node:16
needs: ["install"]
stage: lint
script:
- npm run lint:css
# test:unit:
# image: node:14
# image: node:16
# stage: test
# script:
# - npm run test:unit
build:
image: node:14
image: node:16
needs: ["install"]
stage: build
script:
@@ -66,7 +66,7 @@ build:
- .next/cache/
test:e2e:
image: circleci/node:14-browsers
image: circleci/node:16-browsers
needs: ["install", "build"]
stage: test
script:
+1 -1
View File
@@ -1 +1 @@
14
16
+2 -2
View File
@@ -1,7 +1,7 @@
{
"extends": [
"stylelint-config-standard",
"stylelint-config-recommended",
"stylelint-config-styled-components"
],
"syntax": "css"
"customSyntax": "postcss-jsx"
}
+3 -3
View File
@@ -1,5 +1,5 @@
# Install dependencies only when needed
FROM node:14-alpine AS deps
FROM node:16-alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
WORKDIR /app
@@ -7,7 +7,7 @@ COPY package.json package-lock.json ./
RUN npm ci
# Rebuild the source code only when needed
FROM node:14-alpine AS builder
FROM node:16-alpine AS builder
WORKDIR /app
COPY . .
COPY --from=deps /app/node_modules ./node_modules
@@ -21,7 +21,7 @@ ARG SENTRY_AUTH_TOKEN
RUN npm run build
# Production image, copy all the files and run next
FROM node:14-alpine AS runner
FROM node:16-alpine AS runner
WORKDIR /app
ENV NODE_ENV production
+1 -1
View File
@@ -10,7 +10,7 @@ This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next
## Installation
1. Clone/download repo
2. Install node v14 ([`nvm`](https://github.com/nvm-sh/nvm))
2. Install node v16 ([`nvm`](https://github.com/nvm-sh/nvm))
3. `npm install`
## Getting Started
-1
View File
@@ -1,5 +1,4 @@
/// <reference types="next" />
/// <reference types="next/types/global" />
/// <reference types="next/image-types/global" />
// NOTE: This file should not be edited
+931 -2447
View File
File diff suppressed because it is too large Load Diff
+9 -7
View File
@@ -48,28 +48,30 @@
"eslint": "^7.32.0",
"eslint-config-airbnb": "^18.2.1",
"eslint-config-airbnb-typescript": "^13.0.0",
"eslint-config-next": "^11.1.2",
"eslint-config-next": "^12.0.7",
"husky": "^7.0.1",
"jest": "^27.1.0",
"next-sitemap": "^1.6.203",
"npm-run-all": "^4.1.5",
"stylelint": "^13.13.1",
"stylelint-config-standard": "^22.0.0",
"postcss-jsx": "^0.36.4",
"postcss-syntax": "^0.36.2",
"stylelint": "^14.2.0",
"stylelint-config-recommended": "^6.0.0",
"stylelint-config-styled-components": "^0.1.1",
"testcafe": "^1.15.3",
"ts-jest": "^27.0.5",
"typescript": "^4.3.5"
},
"dependencies": {
"@next/bundle-analyzer": "^11.1.2",
"@rjsf/core": "^3.1.0",
"@sentry/nextjs": "^6.14.3",
"@next/bundle-analyzer": "^12.0.7",
"@rjsf/core": "^3.2.1",
"@sentry/nextjs": "^6.16.0",
"axios": "^0.21.1",
"date-fns": "^2.23.0",
"fast-deep-equal": "^3.1.3",
"js-cookie": "^3.0.0",
"lodash": "^4.17.21",
"next": "^11.1.2",
"next": "^12.0.7",
"normalize.css": "^8.0.1",
"react": "^17.0.2",
"react-beautiful-dnd": "^13.1.0",
@@ -36,6 +36,7 @@ export const HeroSecondarySectionItem: React.FC<HeroSecondarySectionItemProps> =
const Section = styled.section`
background-color: ${colors.green1};
color: ${colors.darkBlue};
width: 100%;
padding: 3rem;
h1 {
+1 -1
View File
@@ -12,7 +12,7 @@ export async function generateToken(username: string, password: string): Promise
return resp.data.token;
}
export function setTokenCookie(token: string) {
export function setTokenCookie(token: string): void {
Cookies.set("jwt", token);
Cookies.set("jwt", token, { domain: ".sahkoinsinoorikilta.fi" });
}
+1 -6
View File
@@ -54,15 +54,10 @@ const ActualPageHero: React.FC = () => (
linkText="Ulkoiset suhteet&nbsp;"
/>
</HeroAside>
<HeroSecondarySection
heading="Kiltahuone sijaitsee Tuas-talossa (Maarintie 8)"
>
<HeroSecondarySectionItem note="Ma">
<span>
Killan hallitus päivystää kiltahuoneella <strong>maanantaisin.</strong> Tuolloin voit ostaa kiltatuotteita, kuten esim. haalarimerkkejä tai laulukirjoja.
</span>
</HeroSecondarySectionItem>
<HeroSecondarySectionItem note="To">
<span>
Kiltapäiväkerho Kiltis kokoontuu <strong>torstaisin kiltahuoneella.</strong>. Lämpimästi tervetuloa kaikki SIKkiläiset ja SIK-mieliset!
@@ -151,6 +151,7 @@ const ContactsPageView: React.FC = () => (
<BlueLink to="mailto:hallitus@sahkoinsinoorikilta.fi">
hallitus@sahkoinsinoorikilta.fi
</BlueLink>
{". Hallituksen yksittäisiin jäseniin saat yhteyden etunimi.sukunimi@sahkoinsinoorikilta.fi osoitteista."}
</p>
)}
</CommitteeContainer>
@@ -7,7 +7,7 @@ import CorporatePageHero from "./CorporatePageHero";
import JobAdList from "./JobAdList";
const EXCURSION_RULES = "https://static.sahkoinsinoorikilta.fi/saannot/excursiosaannot.pdf";
const YTMK_MAIL = "ytmk@sahkoinsinoorikilta.fi";
const CORPORATE_MASTER_MAIL = "tommi.oinonen@sahkoinsinoorikilta.fi";
interface CorporatePageViewProps {
jobAds: JobAd[];
@@ -92,9 +92,9 @@ const CorporatePageView: React.FC<CorporatePageViewProps> = ({ jobAds }) => (
<TextSection>
<h3>Olethan yhteydessä!</h3>
<div>
<p>Yllämainituista mahdollisuuksista, sekä muista ideoista kiinnostuneena, voit olla yhteydessä Yrityssuhdemestariimme Ottoon.</p>
<p>Yllämainituista mahdollisuuksista, sekä muista ideoista kiinnostuneena, voit olla yhteydessä Yrityssuhdemestariimme Tommiin.</p>
<h6>Yrityssuhdemestari</h6>
<p>Otto Julkunen <br />044 973 2842<br /> <a href="mailto:otto.julkunen@sahkoinsinoorikilta.fi">otto.julkunen@sahkoinsinoorikilta.fi</a></p>
<p>Tommi Oinonen <br />044 299 3439<br /> <a href={`mailto:${CORPORATE_MASTER_MAIL}`}>{CORPORATE_MASTER_MAIL}</a></p>
</div>
</TextSection>
@@ -110,7 +110,7 @@ const CorporatePageView: React.FC<CorporatePageViewProps> = ({ jobAds }) => (
<h3 id="tyopaikat">Työpaikkailmoitukset</h3>
<div>
<JobAdList jobAds={jobAds} />
<p>Voit saada yrityksesi työpaikkailmoituksen listalle lähettämällä sen osoitteeseen <a href={`mailto:${YTMK_MAIL}`}>{YTMK_MAIL}</a></p>
<p>Voit saada yrityksesi työpaikkailmoituksen listalle lähettämällä sen osoitteeseen <a href={`mailto:${CORPORATE_MASTER_MAIL}`}>{CORPORATE_MASTER_MAIL}</a></p>
</div>
</TextSection>
+1 -1
View File
@@ -64,7 +64,7 @@ const HonoraryPageView: React.FC = () => (
<li>2001 Marko Koski</li>
<li>2002 Sanna Allt, Jussi Salmio</li>
<li>2003 Ville-Hermanni Kilpiä</li>
<li>2004 Sanna Santajärvi</li>
<li>2004 Sanna Liimatainen (os. Santajärvi)</li>
<li>2005 Janne Viskari</li>
<li>2006 Mika Isosaari</li>
<li>2007 Henna Sirkiä (os. Heikkilä)</li>
+5 -3
View File
@@ -1,6 +1,8 @@
import React from "react";
import styled from "styled-components";
import { IChangeEvent, ISubmitEvent, ErrorSchema } from "@rjsf/core";
import {
IChangeEvent, ISubmitEvent, ErrorSchema, Widget,
} from "@rjsf/core";
import { SignupForm } from "@models/Signup";
import Checkboxes from "@components/Widgets/Checkbox/Checkboxes";
import RadioButtonWidget from "@components/Widgets/RadioButton/RadioButtonWidget";
@@ -12,8 +14,8 @@ import { buildFormSchema, buildUISchema, signupFormQuestionToQuestion } from "./
import { useTranslation } from "../../i18n";
const customWidgets = {
radio: RadioButtonWidget,
checkboxes: Checkboxes,
radio: RadioButtonWidget as unknown as Widget,
checkboxes: Checkboxes as unknown as Widget,
};
interface SignUpPageViewProps {
+1
View File
@@ -53,6 +53,7 @@
"src/utils/*"
]
},
"incremental": true
},
"include": [
"./src/**/*",