From 36e9acc637c4a706f0d3d07fbfb88e9afdccc2da Mon Sep 17 00:00:00 2001 From: James Date: Mon, 25 Jul 2022 16:29:20 -0400 Subject: [PATCH 1/2] fix: email not always loading while viewing auth collections --- src/admin/components/forms/Form/index.tsx | 1 - src/admin/components/forms/useField/index.tsx | 2 +- src/admin/components/views/collections/Edit/index.tsx | 5 +++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/admin/components/forms/Form/index.tsx b/src/admin/components/forms/Form/index.tsx index 2d08b8839a..46d0b67864 100644 --- a/src/admin/components/forms/Form/index.tsx +++ b/src/admin/components/forms/Form/index.tsx @@ -42,7 +42,6 @@ const Form: React.FC = (props) => { initialState, // fully formed initial field state initialData, // values only, paths are required as key - form should build initial state as convenience waitForAutocomplete, - log, } = props; const history = useHistory(); diff --git a/src/admin/components/forms/useField/index.tsx b/src/admin/components/forms/useField/index.tsx index 1cf55e811a..a7815b33d4 100644 --- a/src/admin/components/forms/useField/index.tsx +++ b/src/admin/components/forms/useField/index.tsx @@ -38,7 +38,7 @@ const useField = (options: Options): FieldType => { const initialValue = field?.initialValue as T; - const [internalValue, setInternalValue] = useState(field?.value as T); + const [internalValue, setInternalValue] = useState(() => field?.value as T); const [internallyValid, setInternallyValid] = useState(undefined); // Debounce internal values to update form state only every 60ms diff --git a/src/admin/components/views/collections/Edit/index.tsx b/src/admin/components/views/collections/Edit/index.tsx index e90e6ee221..eb7ce9f55a 100644 --- a/src/admin/components/views/collections/Edit/index.tsx +++ b/src/admin/components/views/collections/Edit/index.tsx @@ -13,6 +13,7 @@ import { useLocale } from '../../../utilities/Locale'; import { IndexProps } from './types'; import { StepNavItem } from '../../../elements/StepNav/types'; import { useDocumentInfo } from '../../../utilities/DocumentInfo'; +import { Fields } from '../../../forms/Form/types'; const EditView: React.FC = (props) => { const { collection: incomingCollection, isEditing } = props; @@ -41,7 +42,7 @@ const EditView: React.FC = (props) => { const { state: locationState } = useLocation(); const history = useHistory(); const { setStepNav } = useStepNav(); - const [initialState, setInitialState] = useState({}); + const [initialState, setInitialState] = useState(); const { permissions, user } = useAuth(); const { getVersions, preferences } = useDocumentInfo(); @@ -123,7 +124,7 @@ const EditView: React.FC = (props) => { DefaultComponent={DefaultEdit} CustomComponent={CustomEdit} componentProps={{ - isLoading: isLoadingDocument || !preferences, + isLoading: !initialState || !preferences, data: dataToRender, collection, permissions: collectionPermissions, From 08a38b03b9a93e4a363cdbc39c47ebd67358ff6e Mon Sep 17 00:00:00 2001 From: James Date: Mon, 25 Jul 2022 16:58:47 -0400 Subject: [PATCH 2/2] chore: applies fix to other edit views --- src/admin/components/views/Account/index.tsx | 5 +++-- src/admin/components/views/Global/index.tsx | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/admin/components/views/Account/index.tsx b/src/admin/components/views/Account/index.tsx index 4a5de78355..1327c30937 100644 --- a/src/admin/components/views/Account/index.tsx +++ b/src/admin/components/views/Account/index.tsx @@ -10,13 +10,14 @@ import DefaultAccount from './Default'; import buildStateFromSchema from '../../forms/Form/buildStateFromSchema'; import RenderCustomComponent from '../../utilities/RenderCustomComponent'; import { useDocumentInfo } from '../../utilities/DocumentInfo'; +import { Fields } from '../../forms/Form/types'; const AccountView: React.FC = () => { const { state: locationState } = useLocation<{ data: unknown }>(); const locale = useLocale(); const { setStepNav } = useStepNav(); const { user, permissions } = useAuth(); - const [initialState, setInitialState] = useState({}); + const [initialState, setInitialState] = useState(); const { id, preferences } = useDocumentInfo(); const { @@ -83,7 +84,7 @@ const AccountView: React.FC = () => { hasSavePermission, initialState, apiURL, - isLoading: isLoadingDocument || !preferences, + isLoading: !initialState || !preferences, }} /> ); diff --git a/src/admin/components/views/Global/index.tsx b/src/admin/components/views/Global/index.tsx index 74af7a30ee..262ec2458f 100644 --- a/src/admin/components/views/Global/index.tsx +++ b/src/admin/components/views/Global/index.tsx @@ -12,13 +12,14 @@ import DefaultGlobal from './Default'; import buildStateFromSchema from '../../forms/Form/buildStateFromSchema'; import { IndexProps } from './types'; import { useDocumentInfo } from '../../utilities/DocumentInfo'; +import { Fields } from '../../forms/Form/types'; const GlobalView: React.FC = (props) => { const { state: locationState } = useLocation<{data?: Record}>(); const locale = useLocale(); const { setStepNav } = useStepNav(); const { permissions, user } = useAuth(); - const [initialState, setInitialState] = useState({}); + const [initialState, setInitialState] = useState(); const { getVersions, preferences } = useDocumentInfo(); const { @@ -80,7 +81,7 @@ const GlobalView: React.FC = (props) => { DefaultComponent={DefaultGlobal} CustomComponent={CustomEdit} componentProps={{ - isLoading: isLoadingDocument || !preferences, + isLoading: !initialState || !preferences, data: dataToRender, permissions: globalPermissions, initialState,