import { SelectControl, RangeControl, PanelBody, TextControl } from '@wordpress/components'; import { useSelect } from '@wordpress/data'; import { useMemo, useState } from '@wordpress/element'; import { InspectorControls, useBlockProps } from '@wordpress/block-editor'; import { __ } from '@wordpress/i18n'; import { Followers } from './followers'; const enabled = window._activityPubOptions?.enabled; function useUserOptions() { const users = enabled?.users ? useSelect( ( select ) => select( 'core' ).getUsers( { who: 'authors' } ) ) : []; return useMemo( () => { if ( ! users ) { return []; } const withBlogUser = enabled?.site ? [ { label: __( 'Whole Site', 'activitypub' ), value: 'site' } ] : []; return users.reduce( ( acc, user ) => { acc.push({ label: user.name, value: user.id } ); return acc; }, withBlogUser ); }, [ users ] ); } export default function Edit( { attributes, setAttributes } ) { const { order, per_page, selectedUser, title } = attributes; const blockProps = useBlockProps(); const [ page, setPage ] = useState( 1 ); const orderOptions = [ { label: __( 'New to old', 'activitypub' ), value: 'desc' }, { label: __( 'Old to new', 'activitypub' ), value: 'asc' }, ]; const usersOptions = useUserOptions(); const setAttributestAndResetPage = ( key ) => { return ( value ) => { setPage( 1 ); setAttributes( { [ key ]: value } ); }; } return (
setAttributes( { title: value } ) } />
); }