правильно ли я понял принцип SOLID ? javascript
Всем привет. Посмотрите плиз, правильно ли я понял принцип SOLID ?
import Utils from './../../utils/utils.js';
class Action {
constructor() {
}
init(items) {
if (items) {
return items.concat();
} else {
return false;
}
}
}
class Append {
constructor() {
}
actionToTable(data, getTemplate) {
const actionsWrapper = document.querySelector('[js-action-wrapper]');
data.forEach((action) => {
const tr = document.createElement('tr');
tr.classList.add('platform-table__row')
tr.classList.add('action__row');
tr.setAttribute('data-action', action.id);
tr.innerHTML = getTemplate(action);
actionsWrapper.appendChild(tr);
});
}
}
class Render {
constructor() {
}
actionInTable(action) {
return `
<td class="platform-table__column action-id mr_15">${action.id}</td>
<td class="platform-table__column action-date mr_15">${action.processDate}</td>
<td class="platform-table__column action-name text-ellipsis mr_15" title="${action.name}">
${action.name}
</td>
<td class="platform-table__column action-type text-ellipsis mr_15" title="${action.type}">
${action.type}
</td>
<td class="platform-table__column action-mechanic text-ellipsis mr_15">
${action.mechanics}
</td>
<td class="platform-table__column action-manager text-ellipsis mr_15" title="${action.managers}">
${action.managers}
</td>
<td class="platform-table__column action-consider text-ellipsis mr_15">
${action.proceedType}
</td>
<td class="platform-table__column action-date mr_15">
${action.startDate}
</td>
<td class="platform-table__column action-date mr_15">
${action.endDate}
</td>
<td class="platform-table__column action-value mr_15" title="${action.value}">
${action.value}
</td>
<td class="platform-table__column action-reward-type mr_15">
${action.bonusType}
</td>
<td class="platform-table__column action-reward text-ellipsis mr_15" title="${action.bonus}">
${action.bonus}
</td>
<td class="platform-table__column action-winner text-ellipsis mr_15" title="${action.winner}}">
${action.winner}
</td>
<td class="platform-table__column action-status mr_15">
${action.statusTitle}
</td>
<td class="platform-table__column action-remove">
<div class="action__btn--remove"></div>
</td>
`
}
}
class AddAction {
constructor() {
}
addNewAction(item) {
const openAddMenu = this.openAddMenu.bind(this);
item.addEventListener('click', openAddMenu);
}
openAddMenu() {
const menu = document.querySelector('[js-menu-create-action]');
utils.openModalAnimation(menu, true);
const getActionData = this.getActionData.bind(this);
const data = getActionData();
}
getActionData() {
console.log('Меню открылось, собираем данные с формы для новой акции');
}
}
const action = new Action();
const render = new Render();
const append = new Append();
const addAction = new AddAction();
const utils = new Utils();
function setActions(actions) {
const ready = utils.ready();
ready.then(() => {
checkData(actions);
});
}
const renderAction = function() {
return new Promise((resolve) => {
renderActionTemplate(actionsData, render.actionInTable);
resolve();
});
}
function checkData(actions) {
const actionsData = action.init(actions);
utils.hideLoader();
if (actionsData) {
renderAction().then(() => {
setEvenetListeners();
});
} else {
setError();
}
}
function setEvenetListeners() {
const addActionBtn = document.querySelector('[js-create-action]');
addAction.addNewAction(addActionBtn);
}
function setError() {
console.error('Data actions not defined');
}
function renderActionTemplate(actionsData, getTemplate) {
append.actionToTable(actionsData, getTemplate);
}
/* Initialize actions */
if (utils.getPage() === 'action') {
setActions(items);
}