From 2f2058e5add5e3808f09b9380d614cb7f86b6ac2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mikko=20Pyykk=C3=B6?=
Date: Thu, 12 Jan 2023 16:50:42 +0200
Subject: [PATCH] actually use SSR and fix react hydration errors on dev
---
frontend/components/CreateAccountForm.tsx | 17 +-
.../Editor/Course/CourseAliasEditForm.tsx | 2 +-
.../Dashboard/StudyModules/ModuleCard.tsx | 20 +--
.../Dashboard/StudyModules/ModuleGrid.tsx | 4 +-
.../components/Dashboard/Users/UserInfo.tsx | 4 +-
frontend/components/FilterMenu.tsx | 96 +++++++-----
frontend/components/HeaderBar/MoocLogo.tsx | 3 +-
.../components/Home/CourseAndModuleList.tsx | 14 +-
frontend/components/Home/CourseCard.tsx | 74 ++++-----
frontend/components/Home/CourseHighlights.tsx | 50 ++++--
frontend/components/SignInForm.tsx | 4 +-
frontend/contexts/AlertContext.tsx | 27 +++-
frontend/contexts/LoginStateContext.tsx | 4 +-
frontend/hooks/useEditorCourses.tsx | 1 +
frontend/hooks/useLogPageView.tsx | 20 +++
frontend/lib/authentication.ts | 13 +-
frontend/lib/redirect.ts | 5 +-
frontend/lib/with-admin.tsx | 93 ++++++-----
frontend/lib/with-apollo-client/index.tsx | 76 ++++-----
.../{get-apollo.ts => init-apollo.ts} | 146 +++++++++++-------
frontend/lib/with-signed-in.tsx | 89 +++++------
frontend/lib/with-signed-out.tsx | 58 +++----
frontend/next.config.js | 2 +-
frontend/package-lock.json | 5 +-
frontend/package.json | 1 +
frontend/pages/_app.tsx | 103 ++++++------
frontend/pages/courses.tsx | 3 +-
frontend/pages/email-templates/[id].tsx | 52 ++++---
frontend/pages/profile/index.tsx | 3 +-
frontend/pages/sign-up.tsx | 5 +-
30 files changed, 589 insertions(+), 405 deletions(-)
create mode 100644 frontend/hooks/useLogPageView.tsx
rename frontend/lib/with-apollo-client/{get-apollo.ts => init-apollo.ts} (75%)
diff --git a/frontend/components/CreateAccountForm.tsx b/frontend/components/CreateAccountForm.tsx
index e9dbb3bdf..2bc62910b 100644
--- a/frontend/components/CreateAccountForm.tsx
+++ b/frontend/components/CreateAccountForm.tsx
@@ -3,6 +3,7 @@ import { Component } from "react"
import Link from "next/link"
import { NextRouter, withRouter } from "next/router"
+import { ApolloClient } from "@apollo/client"
import { CircularProgress, Paper, TextField, Typography } from "@mui/material"
import { styled } from "@mui/material/styles"
@@ -60,6 +61,7 @@ export function capitalizeFirstLetter(string: string) {
export interface CreateAccountFormProps {
onComplete: (...args: any[]) => any
+ apolloClient?: ApolloClient
)}
diff --git a/frontend/pages/profile/index.tsx b/frontend/pages/profile/index.tsx
index b5dda5ff5..3b99cde62 100644
--- a/frontend/pages/profile/index.tsx
+++ b/frontend/pages/profile/index.tsx
@@ -69,7 +69,8 @@ function Profile() {
if (error) {
return
}
- if (loading) {
+ if (loading || !data?.currentUser) {
+ // don't show flash of "no first name" content
return
}
diff --git a/frontend/pages/sign-up.tsx b/frontend/pages/sign-up.tsx
index 7fd919b16..ab19da5ef 100644
--- a/frontend/pages/sign-up.tsx
+++ b/frontend/pages/sign-up.tsx
@@ -1,5 +1,7 @@
import Router from "next/router"
+import { useApolloClient } from "@apollo/client"
+
import { RegularContainer } from "/components/Container"
import CreateAccountForm from "/components/CreateAccountForm"
import { useAlertContext } from "/contexts/AlertContext"
@@ -11,6 +13,7 @@ import { useTranslator } from "/util/useTranslator"
const SignUpPage = () => {
const t = useTranslator(SignUpTranslations)
+ const client = useApolloClient()
useBreadcrumbs([
{
@@ -40,7 +43,7 @@ const SignUpPage = () => {
return (
-
+
)