From fc9584eb4491b940d90b2e0b642a3de245e1ce0d Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Thu, 27 Oct 2022 16:42:57 -0700 Subject: [PATCH] Refactor env check. --- components/layout/Header.js | 4 ++-- components/settings/UserButton.js | 4 +++- next.config.js | 1 - pages/_app.js | 6 ++++++ pages/api/config.js | 3 +++ pages/console/[[...id]].js | 7 +++---- pages/dashboard/[[...id]].js | 12 ++---------- pages/login.js | 3 +-- pages/realtime.js | 12 ++---------- pages/settings/accounts.js | 8 -------- pages/settings/index.js | 14 ++++---------- pages/settings/profile.js | 8 -------- pages/share/[...id].js | 12 ++---------- pages/websites/[...id].js | 12 ++---------- 14 files changed, 30 insertions(+), 76 deletions(-) diff --git a/components/layout/Header.js b/components/layout/Header.js index 81c4e710..02a2e081 100644 --- a/components/layout/Header.js +++ b/components/layout/Header.js @@ -17,7 +17,7 @@ import styles from './Header.module.css'; export default function Header() { const { user } = useUser(); const { pathname } = useRouter(); - const { updatesDisabled } = useConfig(); + const { updatesDisabled, adminDisabled } = useConfig(); const isSharePage = pathname.includes('/share/'); const allowUpdate = user?.isAdmin && !updatesDisabled && !isSharePage; @@ -38,7 +38,7 @@ export default function Header() { - {!process.env.isAdminDisabled && ( + {!adminDisabled && ( diff --git a/components/settings/UserButton.js b/components/settings/UserButton.js index d1a8b4ca..1d002c4b 100644 --- a/components/settings/UserButton.js +++ b/components/settings/UserButton.js @@ -8,10 +8,12 @@ import User from 'assets/user.svg'; import styles from './UserButton.module.css'; import { AUTH_TOKEN } from 'lib/constants'; import useUser from 'hooks/useUser'; +import useConfig from 'hooks/useConfig'; export default function UserButton() { const { user } = useUser(); const router = useRouter(); + const { adminDisabled } = useConfig(); const menuOptions = [ { @@ -28,7 +30,7 @@ export default function UserButton() { { label: , value: 'profile', - hidden: process.env.isAdminDisabled, + hidden: adminDisabled, }, { label: , value: 'logout' }, ]; diff --git a/next.config.js b/next.config.js index 3e649d2f..0401516c 100644 --- a/next.config.js +++ b/next.config.js @@ -36,7 +36,6 @@ module.exports = { env: { currentVersion: pkg.version, isProduction: process.env.NODE_ENV === 'production', - isAdminDisabled: process.env.DISABLE_ADMIN, }, basePath: process.env.BASE_PATH, output: 'standalone', diff --git a/pages/_app.js b/pages/_app.js index b8653113..655f9fad 100644 --- a/pages/_app.js +++ b/pages/_app.js @@ -2,6 +2,7 @@ import Head from 'next/head'; import { useRouter } from 'next/router'; import { IntlProvider } from 'react-intl'; import useLocale from 'hooks/useLocale'; +import useConfig from 'hooks/useConfig'; import 'styles/variables.css'; import 'styles/bootstrap-grid.css'; import 'styles/index.css'; @@ -23,6 +24,11 @@ const Intl = ({ children }) => { export default function App({ Component, pageProps }) { const { basePath } = useRouter(); const { dir } = useLocale(); + const { uiDisabled } = useConfig(); + + if (uiDisabled) { + return null; + } return ( diff --git a/pages/api/config.js b/pages/api/config.js index 27a04eaa..1facd45d 100644 --- a/pages/api/config.js +++ b/pages/api/config.js @@ -7,6 +7,9 @@ export default async (req, res) => { trackerScriptName: process.env.TRACKER_SCRIPT_NAME, updatesDisabled: !!process.env.DISABLE_UPDATES, telemetryDisabled: !!process.env.DISABLE_TELEMETRY, + loginDisabled: !!process.env.DISABLE_LOGIN, + adminDisabled: !!process.env.DISABLE_ADMIN, + uiDisabled: !!process.env.DISABLE_UI, }); } diff --git a/pages/console/[[...id]].js b/pages/console/[[...id]].js index 0fd816b1..270a81df 100644 --- a/pages/console/[[...id]].js +++ b/pages/console/[[...id]].js @@ -4,11 +4,11 @@ import TestConsole from 'components/pages/TestConsole'; import useRequireLogin from 'hooks/useRequireLogin'; import useUser from 'hooks/useUser'; -export default function ConsolePage({ enabled, pageDisabled }) { +export default function ConsolePage({ pageDisabled }) { const { loading } = useRequireLogin(); const { user } = useUser(); - if (pageDisabled || loading || !enabled || !user?.isAdmin) { + if (pageDisabled || loading || !user?.isAdmin) { return null; } @@ -22,8 +22,7 @@ export default function ConsolePage({ enabled, pageDisabled }) { export async function getServerSideProps() { return { props: { - pageDisabled: !!process.env.DISABLE_UI, - enabled: !!process.env.ENABLE_TEST_CONSOLE, + pageDisabled: !process.env.ENABLE_TEST_CONSOLE, }, }; } diff --git a/pages/dashboard/[[...id]].js b/pages/dashboard/[[...id]].js index 0959fd0e..7c762097 100644 --- a/pages/dashboard/[[...id]].js +++ b/pages/dashboard/[[...id]].js @@ -5,7 +5,7 @@ import useRequireLogin from 'hooks/useRequireLogin'; import { useRouter } from 'next/router'; import useUser from 'hooks/useUser'; -export default function DashboardPage({ pageDisabled }) { +export default function DashboardPage() { const { query: { id }, isReady, @@ -14,7 +14,7 @@ export default function DashboardPage({ pageDisabled }) { const { loading } = useRequireLogin(); const user = useUser(); - if (pageDisabled || !user || !isReady || loading) { + if (!user || !isReady || loading) { return null; } @@ -26,11 +26,3 @@ export default function DashboardPage({ pageDisabled }) { ); } - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI, - }, - }; -} diff --git a/pages/login.js b/pages/login.js index 29e9624f..55b10427 100644 --- a/pages/login.js +++ b/pages/login.js @@ -17,8 +17,7 @@ export default function LoginPage({ pageDisabled }) { export async function getServerSideProps() { return { props: { - pageDisabled: - !!process.env.DISABLE_LOGIN || !!process.env.DISABLE_UI || !!process.env.isAdminDisabled, + pageDisabled: !!(process.env.DISABLE_LOGIN || process.env.DISABLE_ADMIN), }, }; } diff --git a/pages/realtime.js b/pages/realtime.js index 30dc1467..9f1ebffa 100644 --- a/pages/realtime.js +++ b/pages/realtime.js @@ -3,10 +3,10 @@ import Layout from 'components/layout/Layout'; import RealtimeDashboard from 'components/pages/RealtimeDashboard'; import useRequireLogin from 'hooks/useRequireLogin'; -export default function RealtimePage({ pageDisabled }) { +export default function RealtimePage() { const { loading } = useRequireLogin(); - if (pageDisabled || loading) { + if (loading) { return null; } @@ -16,11 +16,3 @@ export default function RealtimePage({ pageDisabled }) { ); } - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI, - }, - }; -} diff --git a/pages/settings/accounts.js b/pages/settings/accounts.js index c46f179a..3426f4b8 100644 --- a/pages/settings/accounts.js +++ b/pages/settings/accounts.js @@ -1,11 +1,3 @@ import Index from './index'; export default Index; - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI, - }, - }; -} diff --git a/pages/settings/index.js b/pages/settings/index.js index 9bb1b0fa..02e89cea 100644 --- a/pages/settings/index.js +++ b/pages/settings/index.js @@ -2,11 +2,13 @@ import React from 'react'; import Layout from 'components/layout/Layout'; import Settings from 'components/pages/Settings'; import useRequireLogin from 'hooks/useRequireLogin'; +import useConfig from 'hooks/useConfig'; -export default function SettingsPage({ pageDisabled }) { +export default function SettingsPage() { const { loading } = useRequireLogin(); + const { adminDisabled } = useConfig(); - if (pageDisabled || loading) { + if (adminDisabled || loading) { return null; } @@ -16,11 +18,3 @@ export default function SettingsPage({ pageDisabled }) { ); } - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI || !!process.env.isAdminDisabled, - }, - }; -} diff --git a/pages/settings/profile.js b/pages/settings/profile.js index c46f179a..3426f4b8 100644 --- a/pages/settings/profile.js +++ b/pages/settings/profile.js @@ -1,11 +1,3 @@ import Index from './index'; export default Index; - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI, - }, - }; -} diff --git a/pages/share/[...id].js b/pages/share/[...id].js index 6c81a67a..d449afa5 100644 --- a/pages/share/[...id].js +++ b/pages/share/[...id].js @@ -4,13 +4,13 @@ import Layout from 'components/layout/Layout'; import WebsiteDetails from 'components/pages/WebsiteDetails'; import useShareToken from 'hooks/useShareToken'; -export default function SharePage({ pageDisabled }) { +export default function SharePage() { const router = useRouter(); const { id } = router.query; const shareId = id?.[0]; const shareToken = useShareToken(shareId); - if (pageDisabled || !shareToken) { + if (!shareToken) { return null; } @@ -20,11 +20,3 @@ export default function SharePage({ pageDisabled }) { ); } - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI, - }, - }; -} diff --git a/pages/websites/[...id].js b/pages/websites/[...id].js index 7d068d3d..90f4f492 100644 --- a/pages/websites/[...id].js +++ b/pages/websites/[...id].js @@ -4,12 +4,12 @@ import Layout from 'components/layout/Layout'; import WebsiteDetails from 'components/pages/WebsiteDetails'; import useRequireLogin from 'hooks/useRequireLogin'; -export default function DetailsPage({ pageDisabled }) { +export default function DetailsPage() { const { loading } = useRequireLogin(); const router = useRouter(); const { id } = router.query; - if (pageDisabled || !id || loading) { + if (!id || loading) { return null; } @@ -21,11 +21,3 @@ export default function DetailsPage({ pageDisabled }) { ); } - -export async function getServerSideProps() { - return { - props: { - pageDisabled: !!process.env.DISABLE_UI, - }, - }; -}