1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-07-31 13:47:02 +02:00

refactor: remove UI bootstrap endpoint (#1212)

This commit is contained in:
olav 2022-08-09 15:37:26 +02:00 committed by GitHub
parent 4862ba9dc7
commit 840d5a54dd
4 changed files with 8 additions and 48 deletions

View File

@ -13,7 +13,7 @@ import React from 'react';
import { useUsers } from 'hooks/api/getters/useUsers/useUsers'; import { useUsers } from 'hooks/api/getters/useUsers/useUsers';
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
import { EDIT } from 'constants/misc'; import { EDIT } from 'constants/misc';
import useUiBootstrap from 'hooks/api/getters/useUiBootstrap/useUiBootstrap'; import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
interface IUserForm { interface IUserForm {
email: string; email: string;
@ -49,7 +49,7 @@ const UserForm: React.FC<IUserForm> = ({
}) => { }) => {
const { classes: styles } = useStyles(); const { classes: styles } = useStyles();
const { roles } = useUsers(); const { roles } = useUsers();
const { bootstrap } = useUiBootstrap(); const { uiConfig } = useUiConfig();
// @ts-expect-error // @ts-expect-error
const sortRoles = (a, b) => { const sortRoles = (a, b) => {
@ -127,7 +127,7 @@ const UserForm: React.FC<IUserForm> = ({
</RadioGroup> </RadioGroup>
</FormControl> </FormControl>
<ConditionallyRender <ConditionallyRender
condition={mode !== EDIT && bootstrap?.email} condition={mode !== EDIT && Boolean(uiConfig?.emailEnabled)}
show={ show={
<FormControl> <FormControl>
<Typography <Typography

View File

@ -1,13 +1,13 @@
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import useUiBootstrap from 'hooks/api/getters/useUiBootstrap/useUiBootstrap';
import { useUsers } from 'hooks/api/getters/useUsers/useUsers'; import { useUsers } from 'hooks/api/getters/useUsers/useUsers';
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
const useCreateUserForm = ( const useCreateUserForm = (
initialName = '', initialName = '',
initialEmail = '', initialEmail = '',
initialRootRole = 1 initialRootRole = 1
) => { ) => {
const { bootstrap } = useUiBootstrap(); const { uiConfig } = useUiConfig();
const [name, setName] = useState(initialName); const [name, setName] = useState(initialName);
const [email, setEmail] = useState(initialEmail); const [email, setEmail] = useState(initialEmail);
const [sendEmail, setSendEmail] = useState(false); const [sendEmail, setSendEmail] = useState(false);
@ -25,8 +25,8 @@ const useCreateUserForm = (
}, [initialEmail]); }, [initialEmail]);
useEffect(() => { useEffect(() => {
setSendEmail(bootstrap?.email || false); setSendEmail(uiConfig?.emailEnabled || false);
}, [bootstrap?.email]); }, [uiConfig?.emailEnabled]);
useEffect(() => { useEffect(() => {
setRootRole(initialRootRole); setRootRole(initialRootRole);

View File

@ -1,41 +0,0 @@
import handleErrorResponses from '../httpErrorResponseHandler';
import useSWR, { mutate, SWRConfiguration } from 'swr';
import { useState, useEffect } from 'react';
import { formatApiPath } from 'utils/formatPath';
const useUiBootstrap = (options: SWRConfiguration = {}) => {
// The point of the bootstrap is to get multiple datasets in one call. Therefore,
// this needs to be refactored to seed other hooks with the correct data.
const BOOTSTRAP_CACHE_KEY = `api/admin/ui-bootstrap`;
const fetcher = () => {
const path = formatApiPath(`api/admin/ui-bootstrap`);
return fetch(path, {
method: 'GET',
credentials: 'include',
})
.then(handleErrorResponses('ui bootstrap'))
.then(res => res.json());
};
const { data, error } = useSWR(BOOTSTRAP_CACHE_KEY, fetcher, options);
const [loading, setLoading] = useState(!error && !data);
const refetchUiBootstrap = () => {
mutate(BOOTSTRAP_CACHE_KEY);
};
useEffect(() => {
setLoading(!error && !data);
}, [data, error]);
return {
bootstrap: data,
error,
loading,
refetchUiBootstrap,
};
};
export default useUiBootstrap;

View File

@ -12,6 +12,7 @@ export interface IUiConfig {
versionInfo?: IVersionInfo; versionInfo?: IVersionInfo;
links: ILinks[]; links: ILinks[];
disablePasswordAuth?: boolean; disablePasswordAuth?: boolean;
emailEnabled?: boolean;
toast?: IProclamationToast; toast?: IProclamationToast;
segmentValuesLimit?: number; segmentValuesLimit?: number;
strategySegmentsLimit?: number; strategySegmentsLimit?: number;