HM-133. Рефакторинг (#64)
This commit is contained in:
54
src/pages/storages/components/page/Page.js
Normal file
54
src/pages/storages/components/page/Page.js
Normal file
@ -0,0 +1,54 @@
|
||||
import Component from '../../../../core/components/component/Component';
|
||||
import storageApi from '../../api/StorageServiceAPI';
|
||||
import FilterApiComponent from '../filter-api-component/FilterApiComponent';
|
||||
import ApiInfoComponent from '../api-info-component/ApiInfoComponent';
|
||||
import CreateApiComponent from '../create-api-component/CreateApiComponent';
|
||||
import ButtonComponent from '../../../../core/components/button-component/ButtonComponent';
|
||||
import ApiTableComponent from '../api-table-component/ApiTableComponent';
|
||||
import ApiTableViewForm from '../api-table-view-form/ApiTableViewForm';
|
||||
import {EVENTS} from '../../../../core/consts';
|
||||
|
||||
class ApiPage extends Component {
|
||||
constructor (mainNodeSelector, parentNode) {
|
||||
super(mainNodeSelector, parentNode);
|
||||
|
||||
this.filterBox = this.createComponent(FilterApiComponent, this.mainNode);
|
||||
|
||||
this.apiViewForm = this.createComponent(ApiTableViewForm);
|
||||
|
||||
this.infoBox = this.createComponent(ApiInfoComponent);
|
||||
this.createWindow = this.createComponent(CreateApiComponent);
|
||||
|
||||
this.createBtn = this.createComponent(ButtonComponent, this.filterBox.filterButtonBox, '✚', 'btn btn-primary mb-3 Create__btn');
|
||||
this.addSubscribe(this.createBtn, 'click', () => {
|
||||
this.createWindow.show();
|
||||
});
|
||||
this.addSubscribe(this.createWindow, 'renderTable', () => {
|
||||
this.initStorageListTable();
|
||||
});
|
||||
|
||||
this.initStorageListTable();
|
||||
|
||||
this.addSubscribe(this.apiViewForm, 'deleteApi', () => {
|
||||
this.initStorageListTable();
|
||||
});
|
||||
|
||||
this.apiTable = this.createComponent(ApiTableComponent, this.mainNode);
|
||||
this.addSubscribe(this.apiTable, EVENTS.ROW_DOUBLE_CLICK, (_, row) => {
|
||||
this.apiViewForm.setForm(row);
|
||||
});
|
||||
}
|
||||
|
||||
initStorageListTable = async () => {
|
||||
this.apiList = await storageApi.request();
|
||||
return this.renderTable();
|
||||
};
|
||||
|
||||
renderTable = () => {
|
||||
this.render(() => {
|
||||
this.apiTable.render(this.apiList);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export default ApiPage;
|
||||
Reference in New Issue
Block a user