Я реализовал компонент темы, в котором есть кнопка: при нажатии открывается форма создания новой темы с предварительно заполненным содержимым и заголовком. Например:
Это работает: форма создания новой темы открывается, но если я не хочу продолжать и нажимаю «Отменить» (Discard), тема не отменяется, а сохраняется как черновик. Поскольку я нажал «Отменить», я не хочу, чтобы она сохранялась как черновик — потом приходится вручную чистить черновики.
Неужели такое поведение ожидается при использовании этого URL для создания новой темы?
Есть ли способ избежать сохранения в черновики, если выбрано действие «Отменить»?
Спасибо.
Как воспроизвести:
В компоненте темы добавьте кнопку, ссылку которой установите на URL создания новой темы, как показано ниже:
const topicBody = `.....`;
const title = "....";
// URL для создания новой темы
const createTopicUrl = `https://www.mydomain.com/new-topic?title=${title}&body=${topicBody}`;
const createTopicLink = `<span><a href="${createTopicUrl}" rel="noopener noreferrer">new topic</a></span>`;
const meta = `<div>${publisher}${pub_date} ${createTopicLink}</div>`;
const description = `<p>${description}</p>`;
// Добавляем кнопку «новая тема» в интерфейс
return `<li class="news-item"><hr><div class="news-title"><a href="${url}" target="_blank">${title}</a></div>${meta}${description}</li>`;
Нажмите кнопку «новая тема» — откроется форма создания новой темы с предварительно заполненными заголовком и содержимым.
Нажмите «Отменить» (Discard) и подтвердите действие.
Проверьте раздел «Мои сообщения» — там появится новый черновик для отменённой темы.
Привет, Нейт,
копилот объяснил это ниже,
если это правда, интересно, можно ли добавить аргумент в URL, чтобы предотвратить это, было бы здорово
скажем, &auto_save=false
спасибо за помощь.
Да, это ожидаемое поведение в Discourse. Открытие композитора через URL новой темы (с предварительно заполненным заголовком/телом) создает черновик сразу после инициализации композитора. Даже если вы нажмете «Отменить» и подтвердите, Discourse может сохранить запись черновика для этого маршрута, чтобы позже можно было восстановить содержимое. Такое поведение обусловлено основной логикой автосохранения черновиков композитора, а не форматом вашего URL.
Если вы хотите избежать создания черновиков, потребуется кастомный подход (например, открытие модального окна, копирование в буфер обмена или вызов API композитора с переопределением ключа черновика), но обычный URL новой темы всегда будет активировать автосохранение черновиков.