1.1.3 • Published 4 years ago

yb-elastic-popup v1.1.3

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

ElasticPopup

Обертка для центрирования модального окна Посмотреть как работает

Зависимости

Подключение и использование

  • Импортируем
import ElasticPopup from "yb-elastic-popup";
  • Пример jsx Примечание: для this.callbacks следует указывать пустой объект
<ElasticPopup
  className="ElasticPopupClear"
  callbacks={this.callbacks}
  isModal={true}
>
  <SomeContent ... />
</ElasticPopup>

Пропсы

  • String className, default=undefined Стили для тела окна
  • String classOverlay, default=undefined Стили для overlay (если хотим изменить, например, затенение)
  • String headtext, default=undefined Текст в шапку
  • <React.Component> headComponent, default=undefined Компонент в шапку
  • Boolean isShow, default=false Отображается или скрыт при первом рендеринге
  • Boolean isModal, default=false Является ли окно модальным (нужно ли условие при его закрытии)
  • String hideClassInside, default=false ClassName для особых условий. Вешается на ту кнопку, по клику которой можно закрыть окно. (например, кнопка "Закрыть" - чтобы программа определяла ее как триггер на закрытие, вешаем на нее hideClassInside)
  • Object callbacks Для внешних вызовов компонента

Внешние вызовы

  • $show() Отобразить окно
  • $hide() Скрыть окно. Применяется к модальному (isModal=true), т.к. его больше никак закрыть нельзя.
  • $hideWithCheck() Скрыть окно. Условия:
    • клик по кнопке закрытия (по крестику)
    • клик по overlay
    • клик по кнопке, у которой есть заданный className=hideClassInside
  • $toggle() Показать/скрыть окно. Чередует функционал из $show/$hide.

Пример своих стилей

.ElasticPopup {
  .el-modal.whiteButton {
    .close-button {
      height: 30px;
      width: 30px;
      position: absolute;
      right: -30px;
      top: -30px;
      background-image: url(../../img/close.svg);
      background-repeat: no-repeat;
      background-size: 100% 100%;
      background-position-x: 4px;

      // отмена вращения при наведении
      // transition: none;
    }
  }
}
.ElasticPopup {
  .el-modal {
    margin: 50px 0;
  }
}