Skip to content

Commit

Permalink
Handle most of the remaining pages
Browse files Browse the repository at this point in the history
  • Loading branch information
robin-macpherson committed Jun 27, 2024
1 parent 9791305 commit a9f2a08
Show file tree
Hide file tree
Showing 5 changed files with 107 additions and 25 deletions.
22 changes: 18 additions & 4 deletions packages/web/pages/settings/account.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ import LoadingSpinner from '@/components/Icons/LoadingSpinner'
import UpdatePasswordForm from '@/components/Dashboard/Settings/UpdatePasswordForm'
import NotificationSettingsForm from '@/components/Dashboard/Settings/NotificationSettingsForm'
import UILanguageForm from '@/components/Dashboard/Settings/UILanguageForm'
import { useSettingsFormDataQuery } from '@/generated/graphql'
import { SettingsFormDataDocument, useSettingsFormDataQuery } from '@/generated/graphql'
import { journalyMiddleware } from '@/lib/journalyMiddleware'
import { getUiLanguage } from '@/utils/getUiLanguage'

const Account: NextPage = () => {
const uiLanguage = useUILanguage()
Expand Down Expand Up @@ -56,8 +58,20 @@ const Account: NextPage = () => {
)
}

Account.getInitialProps = async () => ({
namespacesRequired: ['common', 'settings'],
})
Account.getInitialProps = async (ctx) => {
const props = await journalyMiddleware(ctx, async (apolloClient) => {
await apolloClient.query({
query: SettingsFormDataDocument,
variables: {
uiLanguage: getUiLanguage(ctx),
},
})
})

return {
...props,
namespacesRequired: ['common', 'settings'],
}
}

export default withApollo(Account)
33 changes: 27 additions & 6 deletions packages/web/pages/settings/profile.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React from 'react'
import { NextPage } from 'next'
import { withApollo } from '@/lib/apollo'
import useUILanguage from '@/hooks/useUILanguage'
import SettingsPageLayout from '@/components/Layouts/SettingsPageLayout'
import LoadingSpinner from '@/components/Icons/LoadingSpinner'
Expand All @@ -10,7 +9,13 @@ import BioForm from '@/components/Dashboard/Settings/BioForm'
import InterestsForm from '@/components/Dashboard/Settings/InterestsForm'
import SocialForm from '@/components/Dashboard/Settings/SocialForm'
import AuthGate from '@/components/AuthGate'
import { useSettingsFormDataQuery } from '@/generated/graphql'
import {
CurrentUserDocument,
SettingsFormDataDocument,
useSettingsFormDataQuery,
} from '@/generated/graphql'
import { journalyMiddleware } from '@/lib/journalyMiddleware'
import { getUiLanguage } from '@/utils/getUiLanguage'

const ProfileInfo: NextPage = () => {
const uiLanguage = useUILanguage()
Expand Down Expand Up @@ -67,8 +72,24 @@ const ProfileInfo: NextPage = () => {
)
}

ProfileInfo.getInitialProps = async () => ({
namespacesRequired: ['settings', 'common', 'badge'],
})
ProfileInfo.getInitialProps = async (ctx) => {
const props = await journalyMiddleware(ctx, async (apolloClient) => {
await apolloClient.query({
query: SettingsFormDataDocument,
variables: {
uiLanguage: getUiLanguage(ctx),
},
})

export default withApollo(ProfileInfo)
await apolloClient.query({
query: CurrentUserDocument,
})
})

return {
...props,
namespacesRequired: ['common', 'settings', 'badge'],
}
}

export default ProfileInfo
29 changes: 23 additions & 6 deletions packages/web/pages/settings/subscription.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
import React from 'react'
import { NextPage } from 'next'
import { withApollo } from '@/lib/apollo'
import SettingsPageLayout from '@/components/Layouts/SettingsPageLayout'
import AuthGate from '@/components/AuthGate'
import SubscriptionForm from '@/components/Dashboard/Settings/Subscription/SubscriptionForm'
import { useSubscriptionSettingsPageQuery } from '@/generated/graphql'
import {
CurrentUserDocument,
SubscriptionSettingsPageDocument,
useSubscriptionSettingsPageQuery,
} from '@/generated/graphql'
import theme from '@/theme'
import { journalyMiddleware } from '@/lib/journalyMiddleware'

const Subscription: NextPage = () => {
const { loading, data, refetch: refetchUser } = useSubscriptionSettingsPageQuery()
Expand Down Expand Up @@ -36,8 +40,21 @@ const Subscription: NextPage = () => {
)
}

Subscription.getInitialProps = async () => ({
namespacesRequired: ['common', 'settings', 'marketing'],
})
Subscription.getInitialProps = async (ctx) => {
const props = await journalyMiddleware(ctx, async (apolloClient) => {
await apolloClient.query({
query: SubscriptionSettingsPageDocument,
})

export default withApollo(Subscription)
await apolloClient.query({
query: CurrentUserDocument,
})
})

return {
...props,
namespacesRequired: ['common', 'settings', 'marketing'],
}
}

export default Subscription
19 changes: 15 additions & 4 deletions packages/web/pages/settings/tutorials.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import { withApollo } from '@/lib/apollo'
import SettingsPageLayout from '@/components/Layouts/SettingsPageLayout'
import AuthGate from '@/components/AuthGate'
import theme from '@/theme'
import { journalyMiddleware } from '@/lib/journalyMiddleware'
import { CurrentUserDocument } from '@/generated/graphql'

const Tutorials: NextPage = () => {
return (
Expand Down Expand Up @@ -247,8 +249,17 @@ const Tutorials: NextPage = () => {
)
}

Tutorials.getInitialProps = async () => ({
namespacesRequired: ['common', 'tutorials'],
})
Tutorials.getInitialProps = async (ctx) => {
const props = await journalyMiddleware(ctx, async (apolloClient) => {
await apolloClient.query({
query: CurrentUserDocument,
})
})

export default withApollo(Tutorials)
return {
...props,
namespacesRequired: ['common', 'tutorials'],
}
}

export default Tutorials
29 changes: 24 additions & 5 deletions packages/web/pages/user/[handle]/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ import { useRouter } from 'next/router'
import { withApollo } from '@/lib/apollo'
import LoadingWrapper from '@/components/LoadingWrapper'
import DashboardLayout from '@/components/Layouts/DashboardLayout'
import { useProfilePageQuery } from '@/generated/graphql'
import { ProfilePageDocument, UiLanguage, useProfilePageQuery } from '@/generated/graphql'
import useUILanguage from '@/hooks/useUILanguage'
import Profile from '@/components/Dashboard/Profile'
import { journalyMiddleware } from '@/lib/journalyMiddleware'

interface InitialProps {
namespacesRequired: string[]
Expand Down Expand Up @@ -40,8 +41,26 @@ const ProfilePage: NextPage<InitialProps> = () => {
)
}

ProfilePage.getInitialProps = async () => ({
namespacesRequired: ['common', 'profile', 'post'],
})
ProfilePage.getInitialProps = async (ctx) => {
const props = await journalyMiddleware(ctx, async (apolloClient) => {
const userHandle = ctx.query.handle as string

export default withApollo(ProfilePage)
// const uiLanguage = useUILanguage()
// const { i18n: { language } } = React.useContext(I18nContext)
// return langCodeToUILangMap[language] || UILanguage.English

await apolloClient.query({
query: ProfilePageDocument,
variables: {
uiLanguage: UiLanguage.English,
userHandle,
},
})
})
return {
...props,
namespacesRequired: ['common', 'profile', 'post'],
}
}

export default ProfilePage

0 comments on commit a9f2a08

Please sign in to comment.