Поддержка создания ссылок на темы с предзаполненным содержимым

Вопрос.

Я реализовал компонент темы, в котором есть кнопка: при нажатии открывается форма создания новой темы с предварительно заполненным содержимым и заголовком. Например:

https://www.mydomain.com/new-topic?title=${title}&body=${body}

Это работает: форма создания новой темы открывается, но если я не хочу продолжать и нажимаю «Отменить» (Discard), тема не отменяется, а сохраняется как черновик. Поскольку я нажал «Отменить», я не хочу, чтобы она сохранялась как черновик — потом приходится вручную чистить черновики.

Неужели такое поведение ожидается при использовании этого URL для создания новой темы?
Есть ли способ избежать сохранения в черновики, если выбрано действие «Отменить»?

Спасибо.

Как воспроизвести:

  1. В компоненте темы добавьте кнопку, ссылку которой установите на 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>`;
  1. Нажмите кнопку «новая тема» — откроется форма создания новой темы с предварительно заполненными заголовком и содержимым.
  2. Нажмите «Отменить» (Discard) и подтвердите действие.
  3. Проверьте раздел «Мои сообщения» — там появится новый черновик для отменённой темы.
1 лайк

Мне не удаётся воспроизвести это на Meta. Это происходит в безопасном режиме? Какая версия у вашего экземпляра? Спасибо.

Мой экземпляр версии 2026.1.0.

При использовании встроенной в систему функции создания новой темы, если её отменить, черновик не сохраняется.

В моём случае я привязал URL создания новой темы к кнопке, добавленной в компонент темы.
Не понимаю, почему это отличается от встроенного опыта…

1 лайк

Привет, Нейт,
копилот объяснил это ниже,
если это правда, интересно, можно ли добавить аргумент в URL, чтобы предотвратить это, было бы здорово
скажем, &auto_save=false
спасибо за помощь.

Да, это ожидаемое поведение в Discourse. Открытие композитора через URL новой темы (с предварительно заполненным заголовком/телом) создает черновик сразу после инициализации композитора. Даже если вы нажмете «Отменить» и подтвердите, Discourse может сохранить запись черновика для этого маршрута, чтобы позже можно было восстановить содержимое. Такое поведение обусловлено основной логикой автосохранения черновиков композитора, а не форматом вашего URL.

Если вы хотите избежать создания черновиков, потребуется кастомный подход (например, открытие модального окна, копирование в буфер обмена или вызов API композитора с переопределением ключа черновика), но обычный URL новой темы всегда будет активировать автосохранение черновиков.

Не уверен, что это точно :person_shrugging: . У меня в безопасном режиме на Meta это не воспроизводится. Вы используете стабильную/ESR-версию для своего форума, верно?

Привет, Нейт, да, я тоже не уверен насчет ответа от Gemini.

Интересно, что сегодня я больше не могу воспроизвести эту проблему.
Хотя в моем компоненте темы эта часть не менялась.

Спасибо за помощь, если будут новые находки — напишу…

1 лайк