Возможно, это особенность моего поведения, но я привык закрывать модальное окно, которое хочу отменить, кликом вне его области.
При создании закладки модальное окно действительно исчезает при клике вне его, однако закладка всё равно создаётся или изменяется. Это не то, что я ожидал.
Нажатие на крестик или клавишу ESC для закрытия модального окна действительно отменяет действие.
Это было сделано намеренно при разработке функции; идея заключалась в том, чтобы взять за пример модальное окно закладок Firefox. Логика следующая:
Нажмите «Создать новую закладку», затем кликните вне модального окна — окно закроется, и закладка будет создана.
Нажмите «Создать новую закладку», затем нажмите «Отмена» — закладка не будет создана.
Нажмите на существующую закладку — появится кнопка «Удалить закладку», которую можно использовать для её удаления.
Это не означает, что мы не должны изменить это поведение, если оно вызывает путаницу, но технически это не ошибка. Я перемещу этот вопрос в ux. Возможно, разница между полноэкранной модальной панелью (Discourse) и выпадающим меню (Firefox) настолько существенна, что требует изменения поведения?
Думаю, моя главная проблема в том, что это не согласуется с другими модальными окнами в Discourse. Нажатие вне модального окна «Пожаловаться» не создаёт жалобу, а нажатие вне модального окна «Поделиться» не публикует пост.
Я склонен предположить, что всплывающее окно или модальное окно изначально вообще не существовало, поэтому на момент его добавления логичным было сохранить старую функциональность (то есть: вы нажали кнопку закладки, и закладка создаётся). Но в целом это действительно выглядит странно. Тем не менее, я постоянно добавляю закладки и никогда не замечал этой особенности!
(То, как браузеры автоматически добавляют закладки, когда я случайно нажимаю Control-D, раздражает меня уже много лет…)
Да, если придираться, можно сказать, что клик по кнопке закладки и есть действие, поскольку всё, что следует в модальном окне после этого, необязательно. Функции «Поделиться» и «Пожаловаться» требуют дополнительных действий или информации, а с одним кликом нам нечего делать. Оглядываясь назад, можно сказать, что это, вероятно, гораздо сложнее понять, чем последовательное поведение модального окна.
Один из способов, который мог бы прояснить ситуацию, — это использование другой формы меню… Как показано в этом быстром макете, это работает не идеально, но если мы хотим сохранить возможность добавления закладок одним кликом, стоит рассмотреть такой вариант. Таким образом, вы сможете более явно видеть изменение состояния кнопки при нажатии, и это не полноценное модальное окно, поэтому, возможно, поведение при клике вне области станет менее запутанным.
Обратите внимание, что в данный момент закладка добавляется в момент закрытия модального окна, а не в момент его открытия. Поэтому это потребует либо значительной переработки кода, либо имитации состояния кнопки.
Это не баг, это сделано намеренно, и так было с самого начала работы с закладками. Это сделано для того, чтобы упростить создание закладок, и, как сказал Крис:
Возможно, я мог бы рассмотреть возможность добавления этого как настройки пользователя, но так уже работает как минимум два года без каких-либо проблем, поэтому я хотел бы увидеть больше сообщений о том, что это вызывает проблемы, прежде чем мы начнём что-то менять.
Опять же, это ещё одна проблема, о которой мне сказали сообщить здесь. Она скопирована с того форума, ссылку на который можно найти здесь
При нажатии F на теме появляется модальное окно закладки. Моя первая реакция — кликнуть вне окна, потому что, скорее всего, я не хотел его открывать, так как обычное нажатие F, вероятно, слишком легко вызывает его.
Но это сохраняет тему в закладки.
Это не баг, так как то же самое происходит на большинстве форумов, это просто раздражает.
Я думаю, что должно происходить следующее: когда я кликаю вне окна, ничего не происходит и закладка игнорируется. Но если я нажму кнопку «Сохранить», ТОГДА закладка будет создана.
Вкратце, просто сделайте так, чтобы клик вне окна ничего не делал, и закладка сохранялась только после нажатия кнопки «Сохранить».
Это другое: вы нажимаете кнопку «Да, я хочу добавить это в закладки». В Discourse вы, вероятно, случайно нажали F и не хотите добавлять это в закладки. Как отмечает OP, это не согласуется со всеми остальными модальными окнами в Discourse, поэтому, по-моему, это нужно изменить.