moment/harmonyqml/components/Chat/Chat.qml

62 lines
1.4 KiB
QML
Raw Normal View History

2019-03-22 14:28:14 +11:00
import QtQuick 2.7
import QtQuick.Layouts 1.3
import "../Base"
import "Banners"
import "RoomEventList"
2019-03-22 14:28:14 +11:00
HColumnLayout {
2019-04-22 00:44:04 +10:00
property string userId: ""
property string category: ""
2019-04-22 00:44:04 +10:00
property string roomId: ""
2019-03-22 14:28:14 +11:00
2019-04-22 00:44:04 +10:00
readonly property var roomInfo:
Backend.accounts.get(userId)
.roomCategories.get(category)
.rooms.get(roomId)
2019-04-15 06:12:07 +10:00
readonly property bool hasUnknownDevices:
Backend.clients.get(userId).roomHasUnknownDevices(roomId)
id: chatPage
2019-03-22 14:28:14 +11:00
onFocusChanged: sendBox.setFocus()
Component.onCompleted: Backend.signals.roomCategoryChanged.connect(
function(forUserId, forRoomId, previous, now) {
if (chatPage && forUserId == userId && forRoomId == roomId) {
chatPage.category = now
}
}
)
RoomHeader {
displayName: roomInfo.displayName
topic: roomInfo.topic || ""
}
RoomEventList {
Layout.fillWidth: true
Layout.fillHeight: true
}
2019-04-22 00:44:04 +10:00
2019-04-15 06:12:07 +10:00
TypingUsersBar {}
2019-04-22 00:44:04 +10:00
InviteBanner {
visible: category === "Invites"
inviter: roomInfo.inviter
2019-04-22 00:44:04 +10:00
}
UnknownDevicesBanner {
visible: category === "Rooms" && hasUnknownDevices
}
2019-04-22 00:44:04 +10:00
SendBox {
id: sendBox
visible: category === "Rooms" && ! hasUnknownDevices
}
LeftBanner {
visible: category === "Left"
leftEvent: roomInfo.leftEvent
2019-04-22 00:44:04 +10:00
}
2019-03-22 14:28:14 +11:00
}