hydrogen-web/src/platform/web/ui/session/rightpanel/RoomInfoView.js
RMidhunSuresh d3d65d89ba Put sidebar rows into container
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30

42 lines
1.7 KiB
JavaScript

import { TemplateView } from "../../general/TemplateView.js";
import { text, classNames, tag } from "../../general/html.js";
import { AvatarView } from "../../avatar.js";
export class RoomInfoView extends TemplateView {
render(t, vm) {
const encryptionString = vm.isEncrypted ? "On" : "Off";
return t.div({ className: "RoomInfo" }, [
this._createButton(vm),
t.div({ className: "RoomAvatar" },
[t.view(new AvatarView(vm, 52)), this._createEncryptionIcon(vm.isEncrypted)]),
t.div({ className: "RoomName" }, [t.h2(vm.name)]),
t.div({ className: "RoomId" }, [text(vm.roomId)]),
t.div({ className: "SidebarRow_collection" },
[
this._createSideBarRow("People", vm.memberCount, { MemberCount: true }),
this._createSideBarRow("Encryption", encryptionString, { EncryptionStatus: true })
])
]);
}
_createSideBarRow(label, value, labelClass, valueClass) {
const labelClassString = classNames({ SidebarLabel: true, ...labelClass });
const valueClassString = classNames({ SidebarValue: true, ...valueClass });
return tag.div({ className: "SidebarRow" }, [
tag.div({ className: labelClassString }, [text(label)]),
tag.div({ className: valueClassString }, [text(value)])
]);
}
_createEncryptionIcon(isEncrypted) {
return tag.div({ className: "RoomEncryption" },
[tag.div({ className: isEncrypted ? "encrypted" : "unencrypted" })])
}
_createButton(vm) {
return tag.div({ className: "buttons" },
[tag.a({ className: "close button-utility", href: vm.closeLink })]);
}
}