From 3ac560dc0fd2518b12497ed02a4baf7de442c0c2 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Mon, 27 Feb 2023 20:03:04 -0800 Subject: [PATCH] Added checks for CLOUD_MODE. --- components/layout/AppLayout.js | 4 ++- components/layout/NavBar.js | 16 +++++++++-- .../pages/settings/profile/ProfileSettings.js | 4 ++- components/pages/settings/teams/TeamsList.js | 2 +- .../{WebsiteReset.js => WebsiteData.js} | 28 +++++++++++-------- .../settings/websites/WebsiteSettings.js | 8 +++--- lib/types.ts | 7 +++++ package.json | 2 +- pages/api/auth/login.ts | 4 +-- pages/api/config.ts | 2 ++ pages/api/me/index.ts | 13 +++++++++ pages/api/me/password.ts | 9 ++++-- pages/console/[[...id]].js | 6 ++-- pages/login.js | 6 ++-- pages/logout.js | 22 +++++++++++---- pages/settings/index.js | 4 ++- pages/settings/teams/[id]/index.js | 14 +++++++++- pages/settings/teams/index.js | 14 +++++++++- pages/settings/users/[id]/index.js | 14 +++++++++- pages/settings/users/index.js | 16 +++++++---- pages/settings/websites/[id]/index.js | 12 ++++++-- pages/settings/websites/index.js | 14 +++++++++- queries/admin/user.ts | 9 +----- styles/index.css | 5 ++++ 24 files changed, 175 insertions(+), 60 deletions(-) rename components/pages/settings/websites/{WebsiteReset.js => WebsiteData.js} (61%) create mode 100644 pages/api/me/index.ts diff --git a/components/layout/AppLayout.js b/components/layout/AppLayout.js index d89c34b9..ad744fab 100644 --- a/components/layout/AppLayout.js +++ b/components/layout/AppLayout.js @@ -2,13 +2,15 @@ import { Container } from 'react-basics'; import Head from 'next/head'; import NavBar from 'components/layout/NavBar'; import useRequireLogin from 'hooks/useRequireLogin'; +import useConfig from 'hooks/useConfig'; import { UI_LAYOUT_BODY } from 'lib/constants'; import styles from './AppLayout.module.css'; export default function AppLayout({ title, children }) { const { user } = useRequireLogin(); + const config = useConfig(); - if (!user) { + if (!user || !config) { return null; } diff --git a/components/layout/NavBar.js b/components/layout/NavBar.js index 07a72bc1..80307568 100644 --- a/components/layout/NavBar.js +++ b/components/layout/NavBar.js @@ -10,9 +10,11 @@ import { labels } from 'components/messages'; import useUser from 'hooks/useUser'; import NavGroup from './NavGroup'; import styles from './NavBar.module.css'; +import useConfig from 'hooks/useConfig'; export default function NavBar() { const { user } = useUser(); + const { cloudMode } = useConfig(); const { formatMessage } = useIntl(); const [minimized, setMinimized] = useState(false); const tooltipPosition = minimized ? 'right' : 'top'; @@ -24,13 +26,21 @@ export default function NavBar() { ]; const settings = [ - { label: formatMessage(labels.websites), url: '/settings/websites', icon: }, + !cloudMode && { + label: formatMessage(labels.websites), + url: '/settings/websites', + icon: , + }, user?.isAdmin && { label: formatMessage(labels.users), url: '/settings/users', icon: , }, - { label: formatMessage(labels.teams), url: '/settings/teams', icon: }, + !cloudMode && { + label: formatMessage(labels.teams), + url: '/settings/teams', + icon: , + }, { label: formatMessage(labels.profile), url: '/settings/profile', icon: }, ].filter(n => n); @@ -53,7 +63,7 @@ export default function NavBar() {
- + {!cloudMode && }
diff --git a/components/pages/settings/profile/ProfileSettings.js b/components/pages/settings/profile/ProfileSettings.js index 9d22cfae..d302b6b2 100644 --- a/components/pages/settings/profile/ProfileSettings.js +++ b/components/pages/settings/profile/ProfileSettings.js @@ -4,14 +4,16 @@ import PageHeader from 'components/layout/PageHeader'; import ProfileDetails from './ProfileDetails'; import PasswordChangeButton from './PasswordChangeButton'; import { labels } from 'components/messages'; +import useConfig from 'hooks/useConfig'; export default function ProfileSettings() { const { formatMessage } = useIntl(); + const { cloudMode } = useConfig(); return ( - + {!cloudMode && } diff --git a/components/pages/settings/teams/TeamsList.js b/components/pages/settings/teams/TeamsList.js index a2ed628c..b48e9971 100644 --- a/components/pages/settings/teams/TeamsList.js +++ b/components/pages/settings/teams/TeamsList.js @@ -65,7 +65,7 @@ export default function TeamsList() { return ( {toast} - + {hasData && ( {joinButton} diff --git a/components/pages/settings/websites/WebsiteReset.js b/components/pages/settings/websites/WebsiteData.js similarity index 61% rename from components/pages/settings/websites/WebsiteReset.js rename to components/pages/settings/websites/WebsiteData.js index d742d113..64979fe4 100644 --- a/components/pages/settings/websites/WebsiteReset.js +++ b/components/pages/settings/websites/WebsiteData.js @@ -1,10 +1,10 @@ -import { Button, Form, FormRow, Modal, ModalTrigger } from 'react-basics'; +import { Button, Modal, ModalTrigger, ActionForm } from 'react-basics'; import { useIntl } from 'react-intl'; import WebsiteDeleteForm from 'components/pages/settings/websites/WebsiteDeleteForm'; import WebsiteResetForm from 'components/pages/settings/websites/WebsiteResetForm'; import { labels, messages } from 'components/messages'; -export default function WebsiteReset({ websiteId, onSave }) { +export default function WebsiteData({ websiteId, onSave }) { const { formatMessage } = useIntl(); const handleReset = async () => { @@ -16,29 +16,33 @@ export default function WebsiteReset({ websiteId, onSave }) { }; return ( -
- -

{formatMessage(messages.resetWebsiteWarning)}

+ <> + - + {close => ( )} -
- -

{formatMessage(messages.deleteWebsiteWarning)}

+ + - + {close => ( )} -
-
+ + ); } diff --git a/components/pages/settings/websites/WebsiteSettings.js b/components/pages/settings/websites/WebsiteSettings.js index e61c699d..02693c72 100644 --- a/components/pages/settings/websites/WebsiteSettings.js +++ b/components/pages/settings/websites/WebsiteSettings.js @@ -6,7 +6,7 @@ import Link from 'next/link'; import Page from 'components/layout/Page'; import PageHeader from 'components/layout/PageHeader'; import WebsiteEditForm from 'components/pages/settings/websites/WebsiteEditForm'; -import WebsiteReset from 'components/pages/settings/websites/WebsiteReset'; +import WebsiteData from 'components/pages/settings/websites/WebsiteData'; import TrackingCode from 'components/pages/settings/websites/TrackingCode'; import ShareUrl from 'components/pages/settings/websites/ShareUrl'; import useApi from 'hooks/useApi'; @@ -59,8 +59,8 @@ export default function WebsiteSettings({ websiteId }) { } > - - + +