Skip to content

Commit c4327f2

Browse files
authored
1 parent 61a51ca commit c4327f2

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

packages/ui/src/elements/DocumentFields/index.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import type { ClientField, SanitizedDocumentPermissions } from 'payload'
33

44
import { fieldIsSidebar } from 'payload/shared'
5-
import React from 'react'
5+
import React, { useMemo } from 'react'
66

77
import { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'
88
import { RenderFields } from '../../forms/RenderFields/index.js'
@@ -32,11 +32,7 @@ export const DocumentFields: React.FC<Args> = ({
3232
readOnly: readOnlyProp,
3333
schemaPathSegments,
3434
}) => {
35-
const [{ hasSidebarFields, mainFields, sidebarFields }] = React.useState<{
36-
hasSidebarFields: boolean
37-
mainFields: ClientField[]
38-
sidebarFields: ClientField[]
39-
}>(() => {
35+
const { hasSidebarFields, mainFields, sidebarFields } = useMemo(() => {
4036
return fields.reduce(
4137
(acc, field) => {
4238
if (fieldIsSidebar(field)) {
@@ -50,12 +46,12 @@ export const DocumentFields: React.FC<Args> = ({
5046
return acc
5147
},
5248
{
53-
hasSidebarFields: false as boolean,
49+
hasSidebarFields: false,
5450
mainFields: [] as ClientField[],
5551
sidebarFields: [] as ClientField[],
5652
},
5753
)
58-
})
54+
}, [fields])
5955

6056
const formInitializing = useFormInitializing()
6157
const formProcessing = useFormProcessing()

packages/ui/src/providers/Config/index.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use client'
22
import type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'
33

4-
import React, { createContext, useCallback, useContext, useState } from 'react'
4+
import React, { createContext, useCallback, useContext, useEffect, useState } from 'react'
55

66
export type ClientConfigContext = {
77
config: ClientConfig
@@ -29,6 +29,12 @@ export const ConfigProvider: React.FC<{
2929
}> = ({ children, config: configFromProps }) => {
3030
const [config, setConfig] = useState<ClientConfig>(configFromProps)
3131

32+
// Need to update local config state if config from props changes, for HMR.
33+
// That way, config changes will be updated in the UI immediately without needing a refresh.
34+
useEffect(() => {
35+
setConfig(configFromProps)
36+
}, [configFromProps])
37+
3238
const getEntityConfig = useCallback(
3339
({ collectionSlug, globalSlug }: { collectionSlug?: string; globalSlug?: string }) => {
3440
if (collectionSlug) {

0 commit comments

Comments
 (0)