Подключение
Фабрика createDirtyStatePlugin(onUpdate), id dirty-state. Требуется pro и включённый features.plugins.
import { ViText, createDirtyStatePlugin } from '@vitext-ru/editor';
const editor = new ViText('#editor', {
preset: 'pro', language: 'ru',
plugins: [createDirtyStatePlugin(dirty => console.log(dirty))]
});
ViText импортируется как в ESM-инструкции; для script используйте ViText.createDirtyStatePlugin.
Поведение
Сразу вызывает callback(false), при событии change — callback(true). Это простой индикатор, не автосохранение и не сравнение с серверной версией. Встроенного «отметить сохранённым» у него нет; состояние успешной записи организует приложение.
Управление и очистка
Ниже альтернативный способ подключения к существующему экземпляру. Не устанавливайте один id дважды.
const remove = editor.usePlugin(createDirtyStatePlugin(dirty => console.log(dirty)));
remove();
removePlugin('dirty-state') также удаляет расширение. Destroy автоматически освобождает его ресурсы. Подписки и UI-вклады отзываются; документ сохраняется. Контракт плагинов.