/* eslint-disable no-multi-spaces */ /* eslint-disable react/jsx-props-no-multi-spaces */ import React from 'react'; import PropTypes from 'prop-types'; import { withTranslation } from 'react-i18next'; import urljoin from 'url-join'; import { pathUtils } from 'growi-commons'; const AdminNavigation = (props) => { const { t } = props; const pathname = window.location.pathname; // eslint-disable-next-line react/prop-types const MenuLabel = ({ menu }) => { switch (menu) { case 'app': return <> { t('App Settings') }>; case 'security': return <> { t('security_settings') }>; case 'markdown': return <> { t('Markdown Settings') }>; case 'customize': return <> { t('Customize') }>; case 'importer': return <> { t('Import Data') }>; case 'export': return <> { t('Export Archive Data') }>; case 'notification': return <> { t('External_Notification')}>; case 'slack-integration-legacy': return <> { t('Legacy_Slack_Integration')}>; case 'slack-integration': return <> { t('slack_integration') }>; case 'users': return <> { t('User_Management') }>; case 'user-groups': return <> { t('UserGroup Management') }>; case 'search': return <> { t('Full Text Search Management') }>; default: return <> { t('Wiki Management Home Page') }>; } }; const MenuLink = ({ // eslint-disable-next-line react/prop-types menu, isRoot, isListGroupItems, isActive, }) => { const pageTransitionClassName = isListGroupItems ? 'list-group-item list-group-item-action border-0 round-corner' : 'dropdown-item px-3 py-2'; return ( ); }; const isActiveMenu = (path) => { const basisPath = pathUtils.normalizePath(urljoin('/admin', path)); const basisParentPath = pathUtils.addTrailingSlash(basisPath); return ( pathname === basisPath || pathname.startsWith(basisParentPath) ); }; const getListGroupItemOrDropdownItemList = (isListGroupItems) => { return ( <> > ); }; return ( {/* List group */} {getListGroupItemOrDropdownItemList(true)} {/* Dropdown */} {pathname === '/admin' && } {isActiveMenu('/app') && } {isActiveMenu('/security') && } {isActiveMenu('/markdown') && } {isActiveMenu('/customize') && } {isActiveMenu('/importer') && } {isActiveMenu('/export') && } {(isActiveMenu('/notification') || isActiveMenu('/global-notification')) && } {isActiveMenu('/slack-integration') && } {isActiveMenu('/users') && } {isActiveMenu('/user-groups') && } {isActiveMenu('/search') && } {getListGroupItemOrDropdownItemList(false)} ); }; AdminNavigation.propTypes = { t: PropTypes.func.isRequired, // i18next }; export default withTranslation()(AdminNavigation);