| | |
| | | import { compose } from '@wordpress/compose'; |
| | | import { withSelect, withDispatch } from '@wordpress/data'; |
| | | import { PluginSidebar, PluginSidebarMoreMenuItem } from '@wordpress/editor'; |
| | | import { PanelBody, PanelRow, TextControl, DateTimePicker } from '@wordpress/components'; |
| | | import { useEntityProp } from '@wordpress/core-data'; |
| | | import Section from './Section'; |
| | | |
| | |
| | | </svg> |
| | | ); |
| | | const SidePanel = ( { postType, metaFields, setMetaFields } ) => { |
| | | const { content, fields, sections, base } = window.jvbFieldConfig || {}; |
| | | const [meta, setMeta] = useEntityProp('postType', content, 'meta'); |
| | | const { fields, sections } = window.jvbFieldConfig || {}; |
| | | |
| | | const [meta, setMeta] = useEntityProp('postType', postType, 'meta'); |
| | | |
| | | if (!fields || !fields.length) return null; |
| | | |
| | | console.log(fields); |
| | | console.log(sections); |
| | | |
| | | |
| | | |
| | | return ( |
| | | <> |
| | | <PluginSidebarMoreMenuItem |
| | |
| | | title="Additional Fields" |
| | | > |
| | | { |
| | | Object.values(sections).map((section, index) => ( |
| | | |
| | | <Section |
| | | id={section.slug} |
| | | Object.values(sections).map((section, index) => { |
| | | return <Section |
| | | key={section.id} |
| | | name={section.title} |
| | | fields={filterFields({section, fields, base})} |
| | | fields={filterFields({section, fields})} |
| | | meta={meta} |
| | | setMeta={setMeta} |
| | | isOpen={testOpen(index)} |
| | | /> |
| | | )) |
| | | />; |
| | | }) |
| | | } |
| | | </PluginSidebar> |
| | | </> |
| | |
| | | } |
| | | } ); |
| | | |
| | | const filterFields = ({section, fields, base}) => { |
| | | const sectionFields = section.fields.map(f => base+f); |
| | | return fields.filter(item => sectionFields.includes(item.name)) |
| | | const filterFields = ({section, fields}) => { |
| | | return fields.filter(item => section.fields.includes(item.name)) |
| | | }; |
| | | |
| | | const testOpen = (index) => { |