refactoring

This commit is contained in:
2020-11-01 17:18:35 +03:00
parent 9ee2107694
commit e0302794cf
4 changed files with 84 additions and 62 deletions

View File

@ -0,0 +1,61 @@
import { col, row } from '../src/utils.js'
export class Block {
constructor(value, options) {
this.value = value
this.options = options
}
toHTML() {
throw new Error(
'Для данного блока не найден подходящий метод для генерации HTML кода!'
)
}
}
export class TitleBlock extends Block {
constructor(value, options) {
super(value, options)
}
toHTML() {
const { options, value } = this
return row(col(`<${options.tag}>${value}</${options.tag}>`), options.styles)
}
}
export class TextBlock extends Block {
constructor(value, options) {
super(value, options)
}
toHTML() {
const { options, value } = this
return row(col(`<p style="margin-bottom: 0;">${value}</p>`), options.styles)
}
}
export class TextColumnsBlock extends Block {
constructor(value, options) {
super(value, options)
}
toHTML() {
const { options, value } = this
return row(value.map((item) => col(item)).join(''), options.styles)
}
}
export class ImageBlock extends Block {
constructor(value, options) {
super(value, options)
}
toHTML() {
const { alt, styles } = this.options
return row(
col(`<img src="./img/${this.value}" alt="${alt}" height="250">`),
styles
)
}
}