diff --git a/storybook/pages/PinnedMessagesPopupPage.qml b/storybook/pages/PinnedMessagesPopupPage.qml index a71204ef21..82b0c8ad1b 100644 --- a/storybook/pages/PinnedMessagesPopupPage.qml +++ b/storybook/pages/PinnedMessagesPopupPage.qml @@ -22,81 +22,61 @@ SplitView { Logs { id: logs } QtObject { - id: mockMessageStore - property var messages: [ - { - messageId: "msg1", - senderId: "user1", - senderDisplayName: "Alice", - senderOptionalName: "", - senderIsEnsVerified: false, - senderIcon: "", - amISender: false, - senderIsAdded: false, - senderTrustStatus: Constants.trustStatus.unknown, - messageText: "This is a pinned message", - unparsedText: "This is a pinned message", - messageImage: "", - messageTimestamp: 1621234567, - messageOutgoingStatus: "", - resendError: "", - messageContentType: Constants.messageContentType.messageType, - pinnedMessage: true, - messagePinnedBy: "user2", - reactionsModel: [], - linkPreviewModel: null, - messageAttachments: "", - transactionParams: null, - emojiReactionsModel: null, - responseToMessageWithId: "", - quotedMessageText: "", - quotedMessageFrom: "", - quotedMessageContentType: Constants.messageContentType.messageType, - quotedMessageDeleted: false, - album: [], - albumCount: 0, - quotedMessageAlbumMessageImages: [], - quotedMessageAlbumImagesCount: 0 - }, - { - messageId: "msg2", - senderId: "user2", - senderDisplayName: "Bob", - senderOptionalName: "", - senderIsEnsVerified: false, - senderIcon: "", - amISender: false, - senderIsAdded: false, - senderTrustStatus: Constants.trustStatus.unknown, - messageText: "Another pinned message", - unparsedText: "Another pinned message", - messageImage: "", - messageTimestamp: 1621234568, - messageOutgoingStatus: "", - resendError: "", - messageContentType: Constants.messageContentType.messageType, - pinnedMessage: true, - messagePinnedBy: "user1", - reactionsModel: [], - linkPreviewModel: null, - messageAttachments: "", - transactionParams: null, - emojiReactionsModel: null, - responseToMessageWithId: "", - quotedMessageText: "", - quotedMessageFrom: "", - quotedMessageContentType: Constants.messageContentType.messageType, - quotedMessageDeleted: false, - album: [], - albumCount: 0, - quotedMessageAlbumMessageImages: [], - quotedMessageAlbumImagesCount: 0 + id: d_msg + + readonly property var messagesModel: ListModel { + ListElement { + timestamp: 1656937930123 + senderId: "zq123456789" + senderDisplayName: "simon" + profileImage: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAlklEQVR4nOzW0QmDQBAG4SSkl7SUQlJGCrElq9F3QdjjVhh/5nv3cFhY9vUIYQiNITSG0BhCExPynn1gWf9bx498P7/ + nzPcxEzGExhBdJGYihtAYQlO+tUZvqrPbqeudo5iJGEJjCE15a3VtodH3q2ImYgiNITTlTdG1nUZ5a92VITQxITFiJmIIjSE0htAYQrMHAAD//+wwFVpz+yqXAAAAAElFTkSuQmCC" + contentType: StatusMessage.ContentType.Text + message: "Hello, this is awesome! Feels like decentralized Discord! And it even supports HTML markup, like bold, italics or underline" + isContact: true + isAReply: false + trustIndicator: StatusContactVerificationIcons.TrustedType.Verified + outgoingStatus: StatusMessage.OutgoingStatus.Delivered } - ] + ListElement { + timestamp: 1657937930135 + senderId: "zqABCDEFG" + senderDisplayName: "Mark Cuban" + contentType: StatusMessage.ContentType.Text + message: "I know a lot of you really seem to get off or be validated by arguing with strangers online but please know it's a complete waste of your time and energy" + isContact: false + isAReply: false + trustIndicator: StatusContactVerificationIcons.TrustedType.Untrustworthy + outgoingStatus: StatusMessage.OutgoingStatus.Delivered + } + ListElement { + timestamp: 1667937930159 + senderId: "zqdeadbeef" + senderDisplayName: "replicator.stateofus.eth" + contentType: StatusMessage.ContentType.Text + message: "Test reply; the original text above should have a horizontal gradient mask" + isContact: true + isAReply: true + trustIndicator: StatusContactVerificationIcons.TrustedType.None + outgoingStatus: StatusMessage.OutgoingStatus.Delivered + } + } + readonly property var colorHash: ListModel { + ListElement { colorId: 13; segmentLength: 5 } + ListElement { colorId: 31; segmentLength: 5 } + ListElement { colorId: 10; segmentLength: 1 } + } + } + + QtObject { + id: mockMessageStore + // redo it, use first message as pinned message from d_msg.messagesModel the one whose timestamp is 1656937930123 + property ListModel pinnedMessagesModel: ListModel { + } function getMessageByIndexAsJson(index) { - if (index >= 0 && index < messages.length) { - return JSON.stringify(messages[index]) + if (index >= 0 && index < pinnedMessagesModel.count) { + return JSON.stringify(pinnedMessagesModel.get(index)) } return "{}" } @@ -153,8 +133,45 @@ SplitView { spacing: 10 Button { - text: "Open Pinned Messages Popup" + text: "Open Empty Pinned Messages Popup" onClicked: { + mockMessageStore.pinnedMessagesModel.clear() + pinnedMessagesPopup.messageToPin = "" + pinnedMessagesPopup.open() + } + } + + Button { + text: "Open Pinned Messages Popup (2 messages)" + onClicked: { + mockMessageStore.pinnedMessagesModel.clear() + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(0)) + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(1)) + pinnedMessagesPopup.messageToPin = "" + pinnedMessagesPopup.open() + } + } + + Button { + text: "Open Full Pinned Messages Popup (3 messages)" + onClicked: { + mockMessageStore.pinnedMessagesModel.clear() + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(0)) + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(1)) + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(2)) + pinnedMessagesPopup.messageToPin = "" + pinnedMessagesPopup.open() + } + } + + Button { + text: "Open Unpin Messages Popup (3 messages + messageToPin)" + onClicked: { + mockMessageStore.pinnedMessagesModel.clear() + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(0)) + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(1)) + mockMessageStore.pinnedMessagesModel.append(d_msg.messagesModel.get(2)) + pinnedMessagesPopup.messageToPin = "This is a message to pin" pinnedMessagesPopup.open() } } @@ -163,8 +180,8 @@ SplitView { PinnedMessagesPopup { id: pinnedMessagesPopup store: mockRootStore - messageStore: mockMessageStore - pinnedMessagesModel: mockMessageStore.messages + messageStore: d_msg + pinnedMessagesModel: mockMessageStore.pinnedMessagesModel chatId: "chat1" property var chatContentModule: QtObject { @@ -173,7 +190,7 @@ SplitView { property bool canPost: true property bool canView: true } - property var pinnedMessagesModel: mockMessageStore.messages + property var pinnedMessagesModel: mockMessageStore.pinnedMessagesModel } property var usersStore: QtObject { @@ -219,72 +236,6 @@ SplitView { controls: ColumnLayout { spacing: 16 - - Button { - text: "Add Pinned Message" - onClicked: { - mockMessageStore.messages.push({ - messageId: "msg" + (mockMessageStore.messages.length + 1), - senderId: "user" + (mockMessageStore.messages.length + 1), - senderDisplayName: "User " + (mockMessageStore.messages.length + 1), - senderOptionalName: "", - senderIsEnsVerified: false, - senderIcon: "", - amISender: false, - senderIsAdded: false, - senderTrustStatus: Constants.trustStatus.unknown, - messageText: "New pinned message " + (mockMessageStore.messages.length + 1), - unparsedText: "New pinned message " + (mockMessageStore.messages.length + 1), - messageImage: "", - messageTimestamp: Date.now() / 1000, - messageOutgoingStatus: "", - resendError: "", - messageContentType: Constants.messageContentType.messageType, - pinnedMessage: true, - messagePinnedBy: "user1", - reactionsModel: [], - linkPreviewModel: null, - messageAttachments: "", - transactionParams: null, - emojiReactionsModel: null, - responseToMessageWithId: "", - quotedMessageText: "", - quotedMessageFrom: "", - quotedMessageContentType: Constants.messageContentType.messageType, - quotedMessageDeleted: false, - album: [], - albumCount: 0, - quotedMessageAlbumMessageImages: [], - quotedMessageAlbumImagesCount: 0 - }) - pinnedMessagesPopup.pinnedMessagesModel = mockMessageStore.messages - } - } - - Button { - text: "Clear Pinned Messages" - onClicked: { - mockMessageStore.messages = [] - pinnedMessagesPopup.pinnedMessagesModel = mockMessageStore.messages - } - } - - CheckBox { - id: isPinActionAvailableCheckBox - text: "Is Pin Action Available" - checked: true - onCheckedChanged: { - pinnedMessagesPopup.isPinActionAvailable = checked - } - } - - TextField { - id: messageToPinInput - placeholderText: "Message to pin" - onTextChanged: { - pinnedMessagesPopup.messageToPin = text - } - } } } }