From 8e6da46691331c4e1c49632a1576577b4011d5c3 Mon Sep 17 00:00:00 2001 From: Katherine Date: Thu, 24 Oct 2024 09:51:23 +0800 Subject: [PATCH] fix: limit editing to current collection form block in non-config mode and hide other block (#5499) --- .../src/block-provider/FormBlockProvider.tsx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/core/client/src/block-provider/FormBlockProvider.tsx b/packages/core/client/src/block-provider/FormBlockProvider.tsx index d2abb74276..fcd16e041a 100644 --- a/packages/core/client/src/block-provider/FormBlockProvider.tsx +++ b/packages/core/client/src/block-provider/FormBlockProvider.tsx @@ -24,6 +24,8 @@ import { useActionContext } from '../schema-component'; import { BlockProvider, useBlockRequestContext } from './BlockProvider'; import { TemplateBlockProvider } from './TemplateBlockProvider'; import { FormActiveFieldsProvider } from './hooks/useFormActiveFields'; +import { useDesignable } from '../schema-component'; +import { useCollectionRecordData } from '../data-source'; export const FormBlockContext = createContext<{ form?: any; @@ -123,6 +125,18 @@ export const useIsDetailBlock = () => { export const FormBlockProvider = withDynamicSchemaProps((props) => { const parentRecordData = useCollectionParentRecordData(); const { parentRecord } = props; + const record = useCollectionRecordData(); + const { association } = props; + const cm = useCollectionManager(); + const { __collection } = record || {}; + const { designable } = useDesignable(); + const collection = props.collection || cm.getCollection(association).name; + + if (!designable && __collection) { + if (__collection !== collection) { + return null; + } + } return (