Skip to content

Commit 2508353

Browse files
authored
Chat.Editing: implementing API and UI for deleted messages (DevExpress#29749)
1 parent 6338d27 commit 2508353

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+241
-20
lines changed
16.7 KB
Loading
15.4 KB
Loading
16.8 KB
Loading
18.5 KB
Loading
17.7 KB
Loading
Loading

e2e/testcafe-devextreme/tests/chat/messageList.ts

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,79 @@ test('Messagelist with loadindicator appearance on initial loading', async (t) =
185185
});
186186
});
187187

188+
test('Messagelist with deleted items', async (t) => {
189+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
190+
191+
await testScreenshot(t, takeScreenshot, 'Messagelist without message template and with deleted messages.png', { element: '#container' });
192+
193+
await t
194+
.expect(compareResults.isValid())
195+
.ok(compareResults.errorMessages());
196+
}).before(async () => {
197+
const userFirst = createUser(1, 'First');
198+
const userSecond = createUser(2, 'Second');
199+
const items = [{
200+
author: userFirst,
201+
text: 'AAA',
202+
}, {
203+
author: userFirst,
204+
text: 'BBB',
205+
isDeleted: true,
206+
}, {
207+
author: userSecond,
208+
text: 'CCC',
209+
isDeleted: true,
210+
}];
211+
212+
return createWidget('dxChat', {
213+
items,
214+
user: userFirst,
215+
width: 400,
216+
height: 600,
217+
showDayHeaders: false,
218+
});
219+
});
220+
221+
test('Messagelist with deleted items and custom template', async (t) => {
222+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
223+
224+
await testScreenshot(t, takeScreenshot, 'Messagelist with message template and deleted messages.png', { element: '#container' });
225+
226+
await t
227+
.expect(compareResults.isValid())
228+
.ok(compareResults.errorMessages());
229+
}).before(async () => {
230+
const userFirst = createUser(1, 'First');
231+
const userSecond = createUser(2, 'Second');
232+
const items = [{
233+
author: userFirst,
234+
text: 'AAA',
235+
}, {
236+
author: userFirst,
237+
text: 'BBB',
238+
isDeleted: true,
239+
}, {
240+
author: userSecond,
241+
text: 'CCC',
242+
isDeleted: true,
243+
}];
244+
245+
return createWidget('dxChat', {
246+
items,
247+
user: userFirst,
248+
width: 400,
249+
height: 600,
250+
showDayHeaders: false,
251+
messageTemplate: ({ message }, container) => {
252+
if (message.isDeleted) {
253+
$('<div>').text(`${message.author.name} deleted this message`).appendTo(container);
254+
return;
255+
}
256+
$('<div>').text(message.text).appendTo(container);
257+
},
258+
});
259+
});
260+
188261
test('Messagelist with messageTemplate', async (t) => {
189262
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
190263
const chat = new Chat('#container');

packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebubble/_index.scss

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
width: auto;
88
word-break: break-word;
99
white-space: break-spaces;
10+
11+
.dx-chat-messagebubble-content {
12+
&.dx-chat-messagebubble-deleted {
13+
display: flex;
14+
align-items: flex-end;
15+
font-style: italic;
16+
}
17+
}
1018
}
1119

1220
.dx-chat-messagegroup-alignment-start {

packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebubble/_mixins.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
$color-primary,
77
$background-color-primary,
88
$bubble-container-gap,
9+
$bubble-delete-gap,
10+
$bubble-delete-icon-size,
911
) {
1012
.dx-chat-messagegroup-content {
1113
row-gap: $bubble-container-gap;
@@ -14,6 +16,16 @@
1416
.dx-chat-messagebubble {
1517
padding: $padding;
1618
border-radius: $border-radius;
19+
20+
.dx-chat-messagebubble-content {
21+
&.dx-chat-messagebubble-deleted {
22+
gap: $bubble-delete-gap;
23+
24+
.dx-icon {
25+
font-size: $bubble-delete-icon-size;
26+
}
27+
}
28+
}
1729
}
1830

1931
.dx-chat-messagegroup-alignment-start {

packages/devextreme-scss/scss/widgets/fluent/chat/_index.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
$chat-bubble-color-primary,
3939
$chat-bubble-background-color-primary,
4040
$chat-bubble-container-gap,
41+
$chat-bubble-delete-gap,
42+
$chat-bubble-delete-icon-size,
4143
);
4244
@include chat-messagegroup(
4345
$chat-messagegroup-gap,

0 commit comments

Comments
 (0)