import { useCallback } from 'react'; import { useMatch, useNavigate, useResolvedPath } from 'react-router-dom'; import { useRecoilValue } from 'recoil'; import { useAuth } from '@/auth/hooks/useAuth'; import { isDataModelSettingsEnabledState } from '@/client-config/states/isDataModelSettingsEnabled'; import { isDevelopersSettingsEnabledState } from '@/client-config/states/isDevelopersSettingsEnabled'; import { AppPath } from '@/types/AppPath'; import { IconColorSwatch, IconHierarchy2, IconLogout, IconRobot, IconSettings, IconUserCircle, IconUsers, } from '@/ui/display/icon/index'; import NavItem from '@/ui/navigation/navbar/components/NavItem'; import NavTitle from '@/ui/navigation/navbar/components/NavTitle'; import SubMenuNavbar from '@/ui/navigation/navbar/components/SubMenuNavbar'; export const SettingsNavbar = () => { const navigate = useNavigate(); const { signOut } = useAuth(); const handleLogout = useCallback(() => { signOut(); navigate(AppPath.SignIn); }, [signOut, navigate]); const isDataModelSettingsEnabled = useRecoilValue( isDataModelSettingsEnabledState, ); const isDevelopersSettingsEnabled = useRecoilValue( isDevelopersSettingsEnabledState, ); const isDataModelSettingsActive = !!useMatch({ path: useResolvedPath('/settings/objects').pathname, end: false, }); const isDevelopersSettingsActive = !!useMatch({ path: useResolvedPath('/settings/developers/api-keys').pathname, end: true, }); return ( {isDataModelSettingsEnabled && ( )} {isDevelopersSettingsEnabled && ( )} ); };