HM-30. Добавлен класс Компонент, поправлены api, внедрен тестовый ком… (#5)
This commit is contained in:
38
src/components/test-modal/TestModal.js
Normal file
38
src/components/test-modal/TestModal.js
Normal file
@ -0,0 +1,38 @@
|
||||
// ! TODO: Удалить, необходим для примера работы с компонентами
|
||||
import Component from '../component';
|
||||
|
||||
import './TestModal.css';
|
||||
|
||||
const MAIN = 'TestModal';
|
||||
const CN = {
|
||||
SHADOW: `${MAIN}__shadow`,
|
||||
WINDOW: `${MAIN}__window`,
|
||||
HIDE_MODAL: `${MAIN}_hide`,
|
||||
};
|
||||
|
||||
class TestModal extends Component {
|
||||
constructor() {
|
||||
super('#test-modal', document.body);
|
||||
|
||||
this.shadow = this.mainNode.querySelector(`.${CN.SHADOW}`);
|
||||
this.window = this.mainNode.querySelector(`.${CN.WINDOW}`);
|
||||
|
||||
this.addEventListener(this.shadow, 'click', (evt) => {
|
||||
if (evt.target === this.shadow) {
|
||||
this.hide();
|
||||
}
|
||||
});
|
||||
|
||||
this.hide();
|
||||
}
|
||||
|
||||
show = () => {
|
||||
this.mainNode.classList.remove(CN.HIDE_MODAL);
|
||||
}
|
||||
|
||||
hide = () => {
|
||||
this.mainNode.classList.add(CN.HIDE_MODAL);
|
||||
}
|
||||
}
|
||||
|
||||
export default TestModal;
|
||||
Reference in New Issue
Block a user