import {f, dEvent} from "../main.js";
export default class Users extends HTMLElement {
constructor() {
super();
this.users = [];
this.data = {};
this.user = null;
this.renderer = false;
this.bindEvents();
}
connectedCallback() {
if (!this.renderer) {
this.render(this.getTemplateUsers());
}
}
render(template) {
this.renderer = true;
this.innerHTML = template;
this.users.forEach(e => {
this.append(e);
})
}
getTemplateUsers() {
return `
Пользователи
`
}
bindEvents() {
console.log("BIND EVENT - " + this.constructor.name)
document.addEventListener('user-login', (e) => {
this.user = e.detail;
this.loadUsers();
this.render(this.getTemplateUsers());
});
document.addEventListener('user-out', () => {
this.render(null);
});
}
clear() {
this.users = [];
this.innerHTML = '';
}
addUser(user) {
this.users.push(this.createUser(user));
}
createUser(data) {
let user = document.createElement('shop-admin-user');
user.dataset.id = data.id;
user.dataset.name = data.name;
user.dataset.status = data.status;
user.dataset.group = data.group;
return user;
}
async loadUsers() {
let list = (await f('user', 'get', this.user.api_token)).data;
// console.log(list)
list.forEach(el => this.addUser(el));
this.users.forEach(e => {
this.append(e);
})
}
}