Проверка записи Gutenberg перед сохранением

#javascript #wordpress #wordpress-gutenberg

#javascript #wordpress #wordpress-gutenberg

Вопрос:

Я пытаюсь добавить проверку после сохранения в редакторе Gutenberg в случае, если выдержка из post пуста. Что у меня сейчас есть:

 const { subscribe } = wp.data;

const unsubscribe = subscribe(() => {
    const editor = wp.data.select('core/editor');
    const notices = wp.data.select('core/notices');

    const isSavingPost = editor.isSavingPost();
    const isAutosavingPost = editor.isAutosavingPost();
    const didPostSaveRequestSucceed = editor.didPostSaveRequestSucceed();

    if (isSavingPost amp;amp; !isAutosavingPost amp;amp; didPostSaveRequestSucceed) {
        const postExcerpt = editor.getEditedPostAttribute('excerpt');

        if (postExcerpt.length !== 0) {
            editor.unlockPostSaving('excerpt-lock');
            notices.removeNotice('excerpt-lock');

            editor.savePost();
        }

        editor.lockPostSaving('excerpt-lock');
        notices.createNotice(
            'error',
            'Please add an excerpt',
            { id: 'excerpt-lock', isDismissible: false }
        );

        unsubscribe();
    }
});
  

Но при сохранении сообщений я получаю

Неперехваченный (в обещании) Ошибка типа: редактор.Сохранение блокировок не является функцией

Я не уверен, чего мне не хватает. Я просмотрел множество примеров в репозитории GB, в различных руководствах, но ничего не сработало.

Комментарии:

1. может быть, попробовать wp.data.dispatch('core/editor').lockPostSaving вместо этого? глядя на developer.wordpress.org/block-editor/data/data-core-editor

2. Я пытался с этим, но я получил Uncaught (in promise) RangeError: Maximum call stack size exceeded содержимое внутри if(isSavingPost...) вызывается 800 раз, а затем выдает вышеупомянутое сообщение