diff --git a/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavItem.tsx b/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavItem.tsx index d947d6a255..1456647776 100644 --- a/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavItem.tsx +++ b/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavItem.tsx @@ -1,23 +1,28 @@ import React from 'react'; import clsx from 'clsx'; import {useScrollSectionContext} from '../../hooks/useScrollSection'; +import {useSearch} from '../../components/providers/ServiceProvider'; interface Props { title: React.ReactNode; navid?: string; + keywords?: string[]; onClick?: (e: React.MouseEvent) => void; } const SettingNavItem: React.FC = ({ title, navid = '', + keywords, onClick = () => {} }) => { const {currentSection} = useScrollSectionContext(); + const {checkVisible} = useSearch(); const classNames = clsx( 'block px-0 py-1 text-sm dark:text-white', - (currentSection === navid) && 'font-bold' + (currentSection === navid) && 'font-bold', + !checkVisible(keywords || []) && 'hidden' ); return ( diff --git a/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavSection.tsx b/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavSection.tsx index bfea196c1a..f0902a2bd7 100644 --- a/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavSection.tsx +++ b/apps/admin-x-settings/src/admin-x-ds/settings/SettingNavSection.tsx @@ -1,12 +1,20 @@ import React from 'react'; import SettingSectionHeader from './SettingSectionHeader'; +import {useSearch} from '../../components/providers/ServiceProvider'; interface Props { title?: string; + keywords?: string[]; children?: React.ReactNode; } -const SettingNavSection: React.FC = ({title, children}) => { +const SettingNavSection: React.FC = ({title, keywords, children}) => { + const {checkVisible} = useSearch(); + + if (!checkVisible(keywords || [])) { + return null; + } + return ( <> {title && } @@ -19,4 +27,4 @@ const SettingNavSection: React.FC = ({title, children}) => { ); }; -export default SettingNavSection; \ No newline at end of file +export default SettingNavSection; diff --git a/apps/admin-x-settings/src/components/Sidebar.tsx b/apps/admin-x-settings/src/components/Sidebar.tsx index 6925fe6c90..26270ca56c 100644 --- a/apps/admin-x-settings/src/components/Sidebar.tsx +++ b/apps/admin-x-settings/src/components/Sidebar.tsx @@ -5,8 +5,13 @@ import SettingNavSection from '../admin-x-ds/settings/SettingNavSection'; import TextField from '../admin-x-ds/global/form/TextField'; import useFeatureFlag from '../hooks/useFeatureFlag'; import useRouting from '../hooks/useRouting'; +import {searchKeywords as advancedSearchKeywords} from './settings/advanced/AdvancedSettings'; +import {searchKeywords as emailSearchKeywords} from './settings/email/EmailSettings'; +import {searchKeywords as generalSearchKeywords} from './settings/general/GeneralSettings'; import {getSettingValues} from '../api/settings'; import {isEditorUser} from '../api/users'; +import {searchKeywords as membershipSearchKeywords} from './settings/membership/MembershipSettings'; +import {searchKeywords as siteSearchKeywords} from './settings/site/SiteSettings'; import {useGlobalData} from './providers/GlobalDataProvider'; import {useSearch} from './providers/ServiceProvider'; @@ -45,51 +50,50 @@ const Sidebar: React.FC = () => {
- - - - - - - - - - + + + + + + + + + + - - {/* */} - - - + + + + - - - - - {hasTipsAndDonations && } - - {hasRecommendations && } - + + + + + {hasTipsAndDonations && } + + {hasRecommendations && } + - - + + {newslettersEnabled !== 'disabled' && ( <> - - - {!config.mailgunIsConfigured && } + + + {!config.mailgunIsConfigured && } )} - - - - - + + + + +
diff --git a/apps/admin-x-settings/src/components/settings/advanced/AdvancedSettings.tsx b/apps/admin-x-settings/src/components/settings/advanced/AdvancedSettings.tsx index 935e77dc25..cbda7b063c 100644 --- a/apps/admin-x-settings/src/components/settings/advanced/AdvancedSettings.tsx +++ b/apps/admin-x-settings/src/components/settings/advanced/AdvancedSettings.tsx @@ -5,7 +5,7 @@ import Labs from './Labs'; import React from 'react'; import SettingSection from '../../../admin-x-ds/settings/SettingSection'; -const searchKeywords = { +export const searchKeywords = { integrations: ['integration', 'zapier', 'slack', 'amp', 'unsplash', 'first promoter', 'firstpromoter', 'pintura', 'disqus', 'analytics', 'ulysses', 'typeform', 'buffer', 'plausible', 'github'], codeInjection: ['newsletter', 'enable', 'disable', 'turn on'], labs: ['labs', 'alpha', 'beta', 'flag', 'import', 'export', 'migrate', 'routes', 'redirects', 'translation', 'delete'], diff --git a/apps/admin-x-settings/src/components/settings/email/EmailSettings.tsx b/apps/admin-x-settings/src/components/settings/email/EmailSettings.tsx index 40105099b9..5089bc0479 100644 --- a/apps/admin-x-settings/src/components/settings/email/EmailSettings.tsx +++ b/apps/admin-x-settings/src/components/settings/email/EmailSettings.tsx @@ -7,7 +7,7 @@ import SettingSection from '../../../admin-x-ds/settings/SettingSection'; import {getSettingValues} from '../../../api/settings'; import {useGlobalData} from '../../providers/GlobalDataProvider'; -const searchKeywords = { +export const searchKeywords = { enableNewsletters: ['newsletter', 'enable', 'disable', 'turn on'], newsletters: ['newsletter', 'email'], defaultRecipients: ['newsletter', 'default recipients', 'email'], diff --git a/apps/admin-x-settings/src/components/settings/general/GeneralSettings.tsx b/apps/admin-x-settings/src/components/settings/general/GeneralSettings.tsx index 0610c1ba8c..398bcd9737 100644 --- a/apps/admin-x-settings/src/components/settings/general/GeneralSettings.tsx +++ b/apps/admin-x-settings/src/components/settings/general/GeneralSettings.tsx @@ -11,7 +11,7 @@ import TitleAndDescription from './TitleAndDescription'; import Twitter from './Twitter'; import Users from './Users'; -const searchKeywords = { +export const searchKeywords = { titleAndDescription: ['title and description', 'site title', 'site description'], timeZone: ['time', 'date', 'site timezone', 'time zone'], publicationLanguage: ['publication language', 'locale'], diff --git a/apps/admin-x-settings/src/components/settings/membership/MembershipSettings.tsx b/apps/admin-x-settings/src/components/settings/membership/MembershipSettings.tsx index 4a4fbf8ba2..9727999975 100644 --- a/apps/admin-x-settings/src/components/settings/membership/MembershipSettings.tsx +++ b/apps/admin-x-settings/src/components/settings/membership/MembershipSettings.tsx @@ -9,7 +9,7 @@ import Tiers from './Tiers'; import TipsOrDonations from './TipsOrDonations'; import useFeatureFlag from '../../../hooks/useFeatureFlag'; -const searchKeywords = { +export const searchKeywords = { portal: ['portal', 'signup', 'sign up', 'signin', 'sign in', 'login', 'account', 'membership'], access: ['default', 'access', 'subscription', 'post', 'membership'], tiers: ['tiers', 'payment', 'paid'], diff --git a/apps/admin-x-settings/src/components/settings/site/SiteSettings.tsx b/apps/admin-x-settings/src/components/settings/site/SiteSettings.tsx index 05869920bb..fdb609c527 100644 --- a/apps/admin-x-settings/src/components/settings/site/SiteSettings.tsx +++ b/apps/admin-x-settings/src/components/settings/site/SiteSettings.tsx @@ -4,7 +4,7 @@ import Navigation from './Navigation'; import React from 'react'; import SettingSection from '../../../admin-x-ds/settings/SettingSection'; -const searchKeywords = { +export const searchKeywords = { design: ['design', 'branding', 'logo', 'cover', 'colors', 'fonts', 'background', 'themes', 'appearance', 'style'], navigation: ['navigation', 'menus', 'primary', 'secondary', 'links'], announcementBar: ['announcement', 'bar', 'important', 'banner']