From 840d5a54dddb10642b52ea918fc1e02954f51971 Mon Sep 17 00:00:00 2001 From: olav Date: Tue, 9 Aug 2022 15:37:26 +0200 Subject: [PATCH] refactor: remove UI bootstrap endpoint (#1212) --- .../admin/users/UserForm/UserForm.tsx | 6 +-- .../admin/users/hooks/useAddUserForm.ts | 8 ++-- .../getters/useUiBootstrap/useUiBootstrap.ts | 41 ------------------- frontend/src/interfaces/uiConfig.ts | 1 + 4 files changed, 8 insertions(+), 48 deletions(-) delete mode 100644 frontend/src/hooks/api/getters/useUiBootstrap/useUiBootstrap.ts diff --git a/frontend/src/component/admin/users/UserForm/UserForm.tsx b/frontend/src/component/admin/users/UserForm/UserForm.tsx index e4f5aa5c1a..f3678f489d 100644 --- a/frontend/src/component/admin/users/UserForm/UserForm.tsx +++ b/frontend/src/component/admin/users/UserForm/UserForm.tsx @@ -13,7 +13,7 @@ import React from 'react'; import { useUsers } from 'hooks/api/getters/useUsers/useUsers'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import { EDIT } from 'constants/misc'; -import useUiBootstrap from 'hooks/api/getters/useUiBootstrap/useUiBootstrap'; +import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig'; interface IUserForm { email: string; @@ -49,7 +49,7 @@ const UserForm: React.FC = ({ }) => { const { classes: styles } = useStyles(); const { roles } = useUsers(); - const { bootstrap } = useUiBootstrap(); + const { uiConfig } = useUiConfig(); // @ts-expect-error const sortRoles = (a, b) => { @@ -127,7 +127,7 @@ const UserForm: React.FC = ({ { - const { bootstrap } = useUiBootstrap(); + const { uiConfig } = useUiConfig(); const [name, setName] = useState(initialName); const [email, setEmail] = useState(initialEmail); const [sendEmail, setSendEmail] = useState(false); @@ -25,8 +25,8 @@ const useCreateUserForm = ( }, [initialEmail]); useEffect(() => { - setSendEmail(bootstrap?.email || false); - }, [bootstrap?.email]); + setSendEmail(uiConfig?.emailEnabled || false); + }, [uiConfig?.emailEnabled]); useEffect(() => { setRootRole(initialRootRole); diff --git a/frontend/src/hooks/api/getters/useUiBootstrap/useUiBootstrap.ts b/frontend/src/hooks/api/getters/useUiBootstrap/useUiBootstrap.ts deleted file mode 100644 index 57f67cc5f1..0000000000 --- a/frontend/src/hooks/api/getters/useUiBootstrap/useUiBootstrap.ts +++ /dev/null @@ -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; diff --git a/frontend/src/interfaces/uiConfig.ts b/frontend/src/interfaces/uiConfig.ts index ce930ae4e4..83dc4ad0ad 100644 --- a/frontend/src/interfaces/uiConfig.ts +++ b/frontend/src/interfaces/uiConfig.ts @@ -12,6 +12,7 @@ export interface IUiConfig { versionInfo?: IVersionInfo; links: ILinks[]; disablePasswordAuth?: boolean; + emailEnabled?: boolean; toast?: IProclamationToast; segmentValuesLimit?: number; strategySegmentsLimit?: number;