// @ts-expect-error WordPress block types are provided at runtime (bundled as externals) import { useBlockProps, InspectorControls } from '@wordpress/block-editor'; import { PanelBody, TextControl, ToggleControl, SelectControl, } from '@wordpress/components'; import { useSelect } from '@wordpress/data'; import { useCallback } from '@wordpress/element'; import PetitionSelect from '../components/PetitionSelect'; import ServerComponent from '../components/ServerComponent'; import type { PetitionerSubmissionsProps, FieldType } from './consts'; import { __ } from '@wordpress/i18n'; import { FormTokenField } from '@wordpress/components'; export default function Edit({ attributes, setAttributes, }: PetitionerSubmissionsProps) { const { formId, perPage = 10, style = 'simple', fields = [], showPagination = true, hidePageNumbers = false, availableFields = [], // availableStyles, } = attributes; const blockAtts = useBlockProps(); const fetchPetitions = useCallback(() => { return useSelect((select) => { // @ts-ignore return select('core').getEntityRecords( 'postType', 'petitioner-petition', { per_page: -1, _fields: 'title,id', } ); }, []); }, []); const allPetitions = fetchPetitions() || []; return (
setAttributes({ formId: el })} allPetitions={allPetitions} /> setAttributes({ perPage: Number(value) || 10 }) } type="number" min={1} /> setAttributes({ showPagination: value }) } /> {showPagination && ( setAttributes({ hidePageNumbers: value }) } /> )} { setAttributes({ fields: value}); }} __experimentalExpandOnFocus={true} placeholder={__( 'separated by comma, e.g. name, country, submitted_at', 'petitioner' )} /> setAttributes({ style: value as 'simple' | 'table', }) } />
); }