ExternalGroupManagement.tsx 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import { FC, useMemo, useState } from 'react';
  2. import { useTranslation } from 'react-i18next';
  3. import { TabContent, TabPane } from 'reactstrap';
  4. import CustomNav from '~/components/CustomNavigation/CustomNav';
  5. import { LdapGroupManagement } from './LdapGroupManagement';
  6. export const ExternalGroupManagement: FC = () => {
  7. const [activeTab, setActiveTab] = useState('ldap');
  8. const [activeComponents, setActiveComponents] = useState(new Set(['ldap']));
  9. const { t } = useTranslation('admin');
  10. const switchActiveTab = (selectedTab) => {
  11. setActiveTab(selectedTab);
  12. setActiveComponents(activeComponents.add(selectedTab));
  13. };
  14. const navTabMapping = useMemo(() => {
  15. return {
  16. ldap: {
  17. Icon: () => <i className="fa fa-sitemap" />,
  18. i18n: 'LDAP',
  19. },
  20. };
  21. }, []);
  22. return <>
  23. <h2 className="border-bottom">{t('external_user_group.management')}</h2>
  24. <CustomNav
  25. activeTab={activeTab}
  26. navTabMapping={navTabMapping}
  27. onNavSelected={switchActiveTab}
  28. hideBorderBottom
  29. breakpointToSwitchDropdownDown="md"
  30. />
  31. <TabContent activeTab={activeTab} className="p-5">
  32. <TabPane tabId="ldap">
  33. {activeComponents.has('ldap') && <LdapGroupManagement />}
  34. </TabPane>
  35. </TabContent>
  36. </>;
  37. };