Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Некорректно выставляется класс на обёртку попапа #496

Closed
i2r opened this issue Jun 9, 2015 · 2 comments
Assignees
Labels

Comments

@i2r
Copy link

i2r commented Jun 9, 2015

  1. В методе _create (https://github.com/yandex-ui/nanoislands/blob/master/blocks/popup/popup.js#L112-L117) мы вычисляем с помощью функции _getUIDialogExtraClass класс и сохраняем в options.dialogClass виджета. Сразу после создания попап открывается с корректно выставленным классом. Но, при повторном открытии, мы затираем вычисленный класс в методе _move наноблока: https://github.com/yandex-ui/nanoislands/blob/master/blocks/popup/popup.js#L761 Из-за этого, попап выглядит корректно только при первом открытии, а при последующих ломается.

  2. В методе _getUIDialogExtraClass использована некорректная регулярка /\w+\_(?!_)/ (https://github.com/yandex-ui/nanoislands/blob/master/blocks/popup/popup.js#L462) — она заматчится и на элемент без модификатора, чего, судя по комментариям, хотелось избежать. Пример:

'block__elem'.split(/\w+\_(?!_)/)
["", "elem"]

В итоге для попапа с классами block__elem и block__elem_mod будут сгенерированы два класса outer_elem и outer_mod.

@i2r
Copy link
Author

i2r commented Jun 9, 2015

Регулярку можно исправить, например, на такую: /[^_]_(?!_)/

'block__elem'.split(/[^_]_(?!_)/)
["block__elem"]

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

'block__elem'.split(/[^_]_(?!_)/)
["block__elem"]

'block__elem_mod'.split(/[^_]_(?!_)/)
["block__ele", "mod"]

@vitkarpov
Copy link
Member

v0.6.11

vitkarpov added a commit that referenced this issue Oct 21, 2015
[Bug] #496 Не затирать модификатор обертки попапа после второго открытия
kizu added a commit that referenced this issue Dec 21, 2015
* master: (53 commits)
  v0.6.15
  how should not be string
  v0.6.14
  v0.6.13
  adds large flying button
  v0.6.12
  v0.6.11
  #496: set mod for outer node after reopen
  #550: flying button
  v0.6.10
  fix nb-island add class
  Включить контейнерную сборку на TravisCI
  Добавлены события nb-focused и nb-blured для popup menu
  fix #501
  fix docs glitch
  v0.6.9
  fix #493
  fix #494
  fix #492
  v0.6.8
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants