@@ -24,7 +24,7 @@ import { store as blockEditorStore } from '../../store';
2424import BlockIcon from '../block-icon' ;
2525import useBlockDisplayTitle from '../block-title/use-block-display-title' ;
2626import useBlockDisplayInformation from '../use-block-display-information' ;
27- const { fieldsKey } = unlock ( blocksPrivateApis ) ;
27+ const { fieldsKey, formKey } = unlock ( blocksPrivateApis ) ;
2828import FieldsDropdownMenu from './fields-dropdown-menu' ;
2929
3030// controls
@@ -197,14 +197,8 @@ function BlockFields( { clientId } ) {
197197
198198 const blockTypeFields = blockType ?. [ fieldsKey ] ;
199199
200- // Track visible fields
201- const [ visibleFields , setVisibleFields ] = useState ( ( ) => {
202- // Show fields that have shownByDefault: true by default
203- return (
204- blockTypeFields
205- ?. filter ( ( field ) => field . shownByDefault )
206- . map ( ( field ) => field . id ) || [ ]
207- ) ;
200+ const [ form , setForm ] = useState ( ( ) => {
201+ return blockType ?. [ formKey ] ;
208202 } ) ;
209203
210204 // Build DataForm fields with proper structure
@@ -315,22 +309,19 @@ function BlockFields( { clientId } ) {
315309 updateBlockAttributes ,
316310 ] ) ;
317311
318- // Build form config showing only visible fields
319- const form = useMemo (
320- ( ) => ( {
321- fields : dataFormFields
322- . filter ( ( field ) => visibleFields . includes ( field . id ) )
323- . map ( ( field ) => field . id ) ,
324- } ) ,
325- [ dataFormFields , visibleFields ]
326- ) ;
327-
328312 const handleToggleField = ( fieldId ) => {
329- setVisibleFields ( ( prev ) => {
330- if ( prev . includes ( fieldId ) ) {
331- return prev . filter ( ( id ) => id !== fieldId ) ;
313+ setForm ( ( prev ) => {
314+ if ( prev . fields ?. includes ( fieldId ) ) {
315+ return {
316+ ...prev ,
317+ fields : prev . fields . filter ( ( id ) => id !== fieldId ) ,
318+ } ;
332319 }
333- return [ ...prev , fieldId ] ;
320+
321+ return {
322+ ...prev ,
323+ fields : [ ...( prev . fields || [ ] ) , fieldId ] ,
324+ } ;
334325 } ) ;
335326 } ;
336327
@@ -350,7 +341,7 @@ function BlockFields( { clientId } ) {
350341 </ HStack >
351342 < FieldsDropdownMenu
352343 fields = { dataFormFields }
353- visibleFields = { visibleFields }
344+ visibleFields = { form . fields }
354345 onToggleField = { handleToggleField }
355346 />
356347 </ HStack >
0 commit comments