summaryrefslogtreecommitdiff
path: root/ChatGroup.ui.qml
blob: 5d8052c25cca2c7fafb3470cbd90e88d54c21cf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import QtQuick 2.15
import QtQuick.Controls 2.15
import QtQuick.Layouts 1.15
import QtGraphicalEffects 1.15

Page {
	property string titleText: qsTr("Bootstrap Community")

	header: ToolBar {
		Label {
			text: titleText
			anchors.centerIn: parent
		}
	}

	ListView {
		id: listView
		anchors {
			fill: parent
			leftMargin: 20
			rightMargin: 20
		}
		model: [11, 1, 6, 1, 11, 1, 7, 1, 11, 1]
		delegate:
		Item {
			width: listView.width
			height: message.height + 16


			ColumnLayout {
				id: message
				width: parent.width
				layoutDirection: modelData === 1 ? Qt.RightToLeft : Qt.LeftToRight
				anchors {
					left: modelData !== 1 ? messageAvatar.right : undefined
					right: modelData === 1 ? messageAvatar.left : undefined
					bottom: parent.bottom
				}
				spacing: 8


				Label {
					id: messageText
					text: qsTr("Hey, Marshall! How are you? Can you please change the color theme of the website to pink and purple? 😂")
					wrapMode: Text.Wrap
					rightPadding: 20
					leftPadding: 20
					bottomPadding: 16
					topPadding: 16
					Layout.maximumWidth: parent.width - (messageAvatar.width + 16)
					background: Rectangle {
						radius: 16
						color: modelData ==1 ? "#2787f5" : "#95aac9"
					}
				}

				Label {
					id: messageTimestamp
					text: qsTr("08:45 PM")
				}
			}

			Image {
				id: messageAvatar
				anchors {
					left: modelData !== 1 ? parent.left : undefined
					right: modelData === 1 ? parent.right : undefined
					bottom: parent.bottom
				}
				source: "https://offsetcode.com/themes/messenger/2.2.0/assets/img/avatars/"
						+ modelData + ".jpg"
				sourceSize {
					width: 26
					height: 26
				}
				layer {
					enabled: true
					effect: OpacityMask {
						maskSource: Rectangle {
							width: 26
							height: 26
							radius: 13
						}
					}
				}
			}
		}
	}

	footer: Pane {
		RowLayout {
			width: parent.width

			TextArea {
				id: messageField
				Layout.fillWidth: true
				placeholderText: qsTr("Type your message...")
				wrapMode: TextArea.Wrap
			}

			Button {
				id: sendButton
				text: qsTr("Send")
				enabled: messageField.length > 0
			}
		}
	}
}