Created two new env variables (#2120)
* created the two env variables * modify according to comments
This commit is contained in:
@ -8,6 +8,8 @@ import { supportChatState } from '@/client-config/states/supportChatState';
|
||||
import { telemetryState } from '@/client-config/states/telemetryState';
|
||||
import { useGetClientConfigQuery } from '~/generated/graphql';
|
||||
|
||||
import { isDataModelSettingsEnabledState } from '../states/isDataModelSettingsEnabled';
|
||||
import { isDevelopersSettingsEnabledState } from '../states/isDevelopersSettingsEnabled';
|
||||
import { isFlexibleBackendEnabledState } from '../states/isFlexibleBackendEnabledState';
|
||||
|
||||
export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
|
||||
@ -20,6 +22,12 @@ export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
|
||||
);
|
||||
|
||||
const [, setIsSignInPrefilled] = useRecoilState(isSignInPrefilledState);
|
||||
const [, setIsDataModelSettingsEnabled] = useRecoilState(
|
||||
isDataModelSettingsEnabledState,
|
||||
);
|
||||
const [, setIsDevelopersSettingsEnabled] = useRecoilState(
|
||||
isDevelopersSettingsEnabledState,
|
||||
);
|
||||
const [, setTelemetry] = useRecoilState(telemetryState);
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const setSupportChat = useSetRecoilState(supportChatState);
|
||||
@ -39,6 +47,12 @@ export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
|
||||
setIsFlexibleBackendEnabled(data?.clientConfig.flexibleBackendEnabled);
|
||||
setIsDebugMode(data?.clientConfig.debugMode);
|
||||
setIsSignInPrefilled(data?.clientConfig.signInPrefilled);
|
||||
setIsDataModelSettingsEnabled(
|
||||
data?.clientConfig.dataModelSettingsEnabled,
|
||||
);
|
||||
setIsDevelopersSettingsEnabled(
|
||||
data?.clientConfig.developersSettingsEnabled,
|
||||
);
|
||||
setTelemetry(data?.clientConfig.telemetry);
|
||||
setSupportChat(data?.clientConfig.support);
|
||||
}
|
||||
@ -48,6 +62,8 @@ export const ClientConfigProvider: React.FC<React.PropsWithChildren> = ({
|
||||
setIsDebugMode,
|
||||
setIsFlexibleBackendEnabled,
|
||||
setIsSignInPrefilled,
|
||||
setIsDataModelSettingsEnabled,
|
||||
setIsDevelopersSettingsEnabled,
|
||||
setTelemetry,
|
||||
setIsLoading,
|
||||
loading,
|
||||
|
||||
@ -8,6 +8,8 @@ export const GET_CLIENT_CONFIG = gql`
|
||||
password
|
||||
}
|
||||
signInPrefilled
|
||||
dataModelSettingsEnabled
|
||||
developersSettingsEnabled
|
||||
debugMode
|
||||
telemetry {
|
||||
enabled
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
export const isDataModelSettingsEnabledState = atom<boolean>({
|
||||
key: 'isDataModelSettingsEnabledState',
|
||||
default: false,
|
||||
});
|
||||
@ -0,0 +1,6 @@
|
||||
import { atom } from 'recoil';
|
||||
|
||||
export const isDevelopersSettingsEnabledState = atom<boolean>({
|
||||
key: 'isDevelopersSettingsEnabledState',
|
||||
default: false,
|
||||
});
|
||||
@ -1,7 +1,10 @@
|
||||
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,
|
||||
@ -26,6 +29,22 @@ export const SettingsNavbar = () => {
|
||||
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/api').pathname,
|
||||
end: true,
|
||||
});
|
||||
|
||||
return (
|
||||
<SubMenuNavbar backButtonTitle="Settings" displayVersion={true}>
|
||||
<NavTitle label="User" />
|
||||
@ -74,28 +93,22 @@ export const SettingsNavbar = () => {
|
||||
})
|
||||
}
|
||||
/>
|
||||
<NavItem
|
||||
label="Data model"
|
||||
to="/settings/objects"
|
||||
Icon={IconHierarchy2}
|
||||
active={
|
||||
!!useMatch({
|
||||
path: useResolvedPath('/settings/objects').pathname,
|
||||
end: false,
|
||||
})
|
||||
}
|
||||
/>
|
||||
<NavItem
|
||||
label="Developers"
|
||||
to="/settings/apis"
|
||||
Icon={IconRobot}
|
||||
active={
|
||||
!!useMatch({
|
||||
path: useResolvedPath('/settings/api').pathname,
|
||||
end: true,
|
||||
})
|
||||
}
|
||||
/>
|
||||
{isDataModelSettingsEnabled && (
|
||||
<NavItem
|
||||
label="Data model"
|
||||
to="/settings/objects"
|
||||
Icon={IconHierarchy2}
|
||||
active={isDataModelSettingsActive}
|
||||
/>
|
||||
)}
|
||||
{isDevelopersSettingsEnabled && (
|
||||
<NavItem
|
||||
label="Developers"
|
||||
to="/settings/apis"
|
||||
Icon={IconRobot}
|
||||
active={isDevelopersSettingsActive}
|
||||
/>
|
||||
)}
|
||||
<NavTitle label="Other" />
|
||||
<NavItem label="Logout" onClick={handleLogout} Icon={IconLogout} />
|
||||
</SubMenuNavbar>
|
||||
|
||||
Reference in New Issue
Block a user