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 }) { } > - - + +