RocketChat/Rocket.Chat

View on GitHub
apps/meteor/client/views/admin/settings/SettingsRoute.tsx

Summary

Maintainability
A
0 mins
Test Coverage
import { useRouteParameter, useIsPrivilegedSettingsContext, useRouter } from '@rocket.chat/ui-contexts';
import type { ReactElement } from 'react';
import React from 'react';

import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage';
import EditableSettingsProvider from './EditableSettingsProvider';
import SettingsGroupSelector from './SettingsGroupSelector';
import SettingsPage from './SettingsPage';

export const SettingsRoute = (): ReactElement => {
    const hasPermission = useIsPrivilegedSettingsContext();
    const groupId = useRouteParameter('group');
    const router = useRouter();

    if (!hasPermission) {
        return <NotAuthorizedPage />;
    }

    if (!groupId) {
        return <SettingsPage />;
    }

    return (
        <EditableSettingsProvider>
            <SettingsGroupSelector groupId={groupId} onClickBack={() => router.navigate('/admin/settings')} />
        </EditableSettingsProvider>
    );
};

export default SettingsRoute;