diff --git a/.drone.yml b/.drone.yml index a5becb8b..61536adf 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,8 +4,15 @@ type: docker name: node16 steps: +- name: check-lockfile + image: node:16 + commands: + - node ./check-lockfile.js + - name: install-deps image: node:16 + depends_on: + - check-lockfile commands: - npm install @@ -30,6 +37,16 @@ steps: commands: - npm run export +- name: deploy (staging) + image: node:16 + depends_on: + - export + environment: + TOKEN: + from_secret: STAGING_TOKEN + commands: + - 'curl -XPOST -H "Authorization: $TOKEN" -H "X-Branch: $DRONE_BRANCH" "https://csclub.uwaterloo.ca/~a3thakra/update-csc/"' + trigger: event: exclude: diff --git a/.vscode/settings.json b/.vscode/settings.json index 68d9b3b3..4867b9a0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,9 +4,7 @@ "eslint.codeActionsOnSave.mode": "all", "[css]": { "editor.suggest.insertMode": "replace", - "gitlens.codeLens.scopes": [ - "document" - ], + "gitlens.codeLens.scopes": ["document"], "editor.formatOnSave": true }, "[javascript]": { @@ -38,5 +36,10 @@ "files.exclude": { "node_modules": true }, - "editor.tabSize": 2 -} \ No newline at end of file + "editor.tabSize": 2, + "files.eol": "\n", + "[markdown]": { + "editor.wordWrap": "on", + "editor.quickSuggestions": false + } +} diff --git a/check-lockfile.js b/check-lockfile.js new file mode 100644 index 00000000..5215c499 --- /dev/null +++ b/check-lockfile.js @@ -0,0 +1,10 @@ +const lockfile = require('./package-lock.json') + +if (lockfile.lockfileVersion !== 2) { + console.error(` +Please upgrade to npm v7 and revert changes to the lockfile. + +- \`npm i -g npm\` to upgrade. +`.trim()) + process.exit(1) +} \ No newline at end of file diff --git a/components/Bubble.module.css b/components/Bubble.module.css index a7f3b645..638c93b7 100644 --- a/components/Bubble.module.css +++ b/components/Bubble.module.css @@ -1,7 +1,71 @@ -.bubble { +.container { + position: relative; padding: calc(36rem / 16) 0; + overflow-x: clip; } -.bubble:nth-child(odd) { +.bubble { + --border-radius: calc(5000rem / 16); + + display: flex; + flex-direction: row; + position: absolute; + top: 0; + height: 100%; + width: 100%; + justify-content: center; + align-items: flex-start; +} + +.bar { + height: 100%; + width: 100%; +} + +.decoration { + display: none; + width: calc(128rem / 16); +} + +.margin { + display: none; +} + +.content { + position: relative; + z-index: 1; +} + +.container:nth-child(odd) .bar { background-color: var(--primary-accent-light); } + +@media only screen and (min-width: calc(1350rem / 16)) { + .container:nth-child(odd) .decoration { + display: block; + position: absolute; + } + + .container:nth-child(4n + 1) .bar { + border-top-right-radius: var(--border-radius); + border-bottom-right-radius: var(--border-radius); + transform: translateX(-12.5vw); + } + + .container:nth-child(4n + 1) .decoration { + top: calc(-50rem / 16); + right: 8vw; + } + + .container:nth-child(4n + 3) .bar { + border-top-left-radius: var(--border-radius); + border-bottom-left-radius: var(--border-radius); + transform: translateX(12.5vw); + } + + .container:nth-child(4n + 3) .decoration { + top: calc(-50rem / 16); + left: 8vw; + transform: rotateY(180deg); + } +} diff --git a/components/Bubble.tsx b/components/Bubble.tsx index 746ee896..54691079 100644 --- a/components/Bubble.tsx +++ b/components/Bubble.tsx @@ -1,13 +1,24 @@ import React from "react"; +import { Image } from "@/components/Image"; + import { DefaultLayout } from "./DefaultLayout"; import styles from "./Bubble.module.css"; -export default function Bubble(props: { children: React.ReactNode }) { +export function Bubble(props: { children: React.ReactNode }) { return ( -
- {props.children} +
+
+
+ +
+
+ {props.children} +
); } diff --git a/components/Code.module.css b/components/Code.module.css new file mode 100644 index 00000000..ba3d5b71 --- /dev/null +++ b/components/Code.module.css @@ -0,0 +1,6 @@ +.code { + padding: 0 calc(4rem / 16); + background: var(--code-background); + border-radius: calc(5rem / 16); + word-wrap: break-word; +} diff --git a/components/Code.tsx b/components/Code.tsx new file mode 100644 index 00000000..1ca5273b --- /dev/null +++ b/components/Code.tsx @@ -0,0 +1,9 @@ +import React, { HTMLAttributes } from "react"; + +import styles from "./Code.module.css"; + +export function Code(props: HTMLAttributes) { + const classes = [styles.code, props.className ?? ""]; + + return ; +} diff --git a/components/ConnectWithUs.tsx b/components/ConnectWithUs.tsx index 7e9d333b..d32ab48e 100644 --- a/components/ConnectWithUs.tsx +++ b/components/ConnectWithUs.tsx @@ -18,9 +18,9 @@ export function ConnectWithUs() {
- {/* TODO: fix feedback form link */}

- Send feedback through our Feedback Form + Send feedback through our{" "} + Feedback Form

); diff --git a/components/EmailSignup.module.css b/components/EmailSignup.module.css index 03dc79c1..c44609b8 100644 --- a/components/EmailSignup.module.css +++ b/components/EmailSignup.module.css @@ -1,7 +1,3 @@ -.container form { - box-sizing: border-box; -} - .header { color: var(--primary-accent); font-weight: 600; @@ -9,8 +5,9 @@ } .button { - margin-top: calc(34rem / 16); + margin-top: calc(26rem / 16); display: block; + width: fit-content; } @media only screen and (max-width: calc(768rem / 16)) { diff --git a/components/EmailSignup.tsx b/components/EmailSignup.tsx index 9a1885ae..064a3f13 100644 --- a/components/EmailSignup.tsx +++ b/components/EmailSignup.tsx @@ -1,21 +1,24 @@ import React from "react"; import { Button } from "./Button"; -import { Input } from "./Input"; import styles from "./EmailSignup.module.css"; export function EmailSignup() { return (
-

Join Our Mailing List!

-
- - - -
+

Join our mailing list!

+

+ Join our mailing list to receive email notifications about important + news and upcoming events! +

+
); } diff --git a/components/Footer.module.css b/components/Footer.module.css index 2f4c9d0c..337a419f 100644 --- a/components/Footer.module.css +++ b/components/Footer.module.css @@ -23,6 +23,11 @@ text-align: center; } +.email { + color: unset; + text-decoration: unset; +} + @media only screen and (max-width: calc(768rem / 16)) { .footer { height: calc(120rem / 16); diff --git a/components/Footer.tsx b/components/Footer.tsx index e0fac676..0d008838 100644 --- a/components/Footer.tsx +++ b/components/Footer.tsx @@ -1,3 +1,4 @@ +import Link from "next/link"; import React from "react"; import { SocialLinks } from "./SocialLinks"; @@ -9,7 +10,10 @@ export function Footer() {