2019-12-19 22:46:16 +11:00
|
|
|
// SPDX-License-Identifier: LGPL-3.0-or-later
|
|
|
|
|
2019-12-09 20:25:31 +11:00
|
|
|
import QtQuick 2.12
|
|
|
|
import QtQuick.Layouts 1.12
|
2019-12-18 19:53:08 +11:00
|
|
|
import "../../Base"
|
2019-12-09 20:25:31 +11:00
|
|
|
import "Banners"
|
|
|
|
import "Timeline"
|
|
|
|
import "FileTransfer"
|
|
|
|
|
2020-03-12 01:45:47 +11:00
|
|
|
HColumnPage {
|
2019-12-09 20:25:31 +11:00
|
|
|
id: chatPage
|
|
|
|
leftPadding: 0
|
|
|
|
rightPadding: 0
|
|
|
|
|
|
|
|
// The target will be our EventList, not the page itself
|
|
|
|
becomeKeyboardFlickableTarget: false
|
|
|
|
|
2019-12-10 05:13:38 +11:00
|
|
|
|
|
|
|
readonly property alias composer: composer
|
2020-03-12 03:53:55 +11:00
|
|
|
readonly property bool loadEventList: ! pageLoader.appearAnimation.running
|
2019-12-10 05:13:38 +11:00
|
|
|
|
2019-12-09 20:25:31 +11:00
|
|
|
|
|
|
|
RoomHeader {
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2020-03-12 03:53:55 +11:00
|
|
|
Timer {
|
|
|
|
id: delayEventListLoadingTimer
|
2020-03-17 11:58:50 +11:00
|
|
|
interval: 200
|
2020-03-12 03:53:55 +11:00
|
|
|
running: true
|
|
|
|
}
|
|
|
|
|
|
|
|
HLoader {
|
|
|
|
id: eventListLoader
|
|
|
|
sourceComponent: loadEventList ? evListComponent : placeholder
|
|
|
|
opacity: loadEventList ? 1 : 0
|
2019-12-09 20:25:31 +11:00
|
|
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
Layout.fillHeight: true
|
2020-03-12 03:53:55 +11:00
|
|
|
|
|
|
|
Behavior on opacity { HNumberAnimation {} }
|
|
|
|
|
|
|
|
Component {
|
|
|
|
id: placeholder
|
|
|
|
Item {}
|
|
|
|
}
|
|
|
|
|
|
|
|
Component {
|
|
|
|
id: evListComponent
|
|
|
|
EventList {}
|
|
|
|
}
|
2019-12-09 20:25:31 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
TypingMembersBar {
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
|
|
|
TransferList {
|
|
|
|
Layout.fillWidth: true
|
|
|
|
Layout.minimumHeight: implicitHeight
|
|
|
|
Layout.preferredHeight: implicitHeight * transferCount
|
|
|
|
Layout.maximumHeight: chatPage.height / 6
|
|
|
|
|
|
|
|
Behavior on Layout.preferredHeight { HNumberAnimation {} }
|
|
|
|
}
|
|
|
|
|
|
|
|
InviteBanner {
|
|
|
|
id: inviteBanner
|
|
|
|
visible: ! chat.roomInfo.left && inviterId
|
|
|
|
inviterId: chat.roomInfo.inviter_id
|
|
|
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2019-12-13 01:33:52 +11:00
|
|
|
LeftBanner {
|
|
|
|
id: leftBanner
|
|
|
|
visible: chat.roomInfo.left
|
|
|
|
Layout.fillWidth: true
|
|
|
|
}
|
|
|
|
|
2019-12-09 20:25:31 +11:00
|
|
|
Composer {
|
|
|
|
id: composer
|
2020-03-12 03:53:55 +11:00
|
|
|
eventList: loadEventList ? eventListLoader.item : null
|
|
|
|
visible:
|
|
|
|
! chat.roomInfo.left && ! chat.roomInfo.inviter_id
|
2019-12-09 20:25:31 +11:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|