adds safety checks for building initial form state with no blockType
This commit is contained in:
@@ -64,7 +64,7 @@ const buildStateFromSchema = async (fieldSchema, fullData) => {
|
||||
initialValue: row.blockName,
|
||||
valid: true,
|
||||
},
|
||||
...iterateFields(block.fields, row, rowPath),
|
||||
...(block?.fields ? iterateFields(block.fields, row, rowPath) : {}),
|
||||
};
|
||||
}, {}),
|
||||
};
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
RenderFieldsNotes
|
||||
|
||||
slides.0.meta.title
|
||||
slides.1.heroInfo.title
|
||||
|
||||
fields: [
|
||||
{
|
||||
name: slides,
|
||||
type: array,
|
||||
fields: [
|
||||
{
|
||||
type: group,
|
||||
name: meta,
|
||||
fields: [
|
||||
{
|
||||
name: title,
|
||||
type: text,
|
||||
component: require.resolve('/aslifjawelifjaew)
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
type: group,
|
||||
name: heroInfo,
|
||||
fields: [
|
||||
{
|
||||
name: title,
|
||||
type: text,
|
||||
component: require.resolve('/aslifjawelifjaew)
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -24,9 +24,12 @@ const RenderFields = (props) => {
|
||||
className,
|
||||
} = props;
|
||||
|
||||
const [hasIntersected, setHasIntersected] = useState(false);
|
||||
const [hasRendered, setHasRendered] = useState(false);
|
||||
const [intersectionRef, entry] = useIntersect(intersectionObserverOptions);
|
||||
const isIntersecting = Boolean(entry?.isIntersecting);
|
||||
const isAboveViewport = entry?.boundingClientRect?.top < 0;
|
||||
|
||||
const shouldRender = isIntersecting || isAboveViewport;
|
||||
|
||||
const { operation: operationFromContext } = useRenderedFields();
|
||||
|
||||
@@ -43,10 +46,10 @@ const RenderFields = (props) => {
|
||||
}, [operation]);
|
||||
|
||||
useEffect(() => {
|
||||
if (isIntersecting && !hasIntersected) {
|
||||
setHasIntersected(true);
|
||||
if (shouldRender && !hasRendered) {
|
||||
setHasRendered(true);
|
||||
}
|
||||
}, [isIntersecting, hasIntersected]);
|
||||
}, [shouldRender, hasRendered]);
|
||||
|
||||
const classes = [
|
||||
baseClass,
|
||||
@@ -59,7 +62,7 @@ const RenderFields = (props) => {
|
||||
ref={intersectionRef}
|
||||
className={classes}
|
||||
>
|
||||
{hasIntersected && (
|
||||
{hasRendered && (
|
||||
<RenderedFieldContext.Provider value={contextValue}>
|
||||
{fieldSchema.map((field, i) => {
|
||||
if (!field?.hidden && field?.admin?.disabled !== true) {
|
||||
|
||||
Reference in New Issue
Block a user