Skip to content

Commit 196ac2c

Browse files
Chat.Editing: contextmenu integration (#29672)
Co-authored-by: ksercs <ksercs0@gmail.com>
1 parent e82ee2a commit 196ac2c

48 files changed

Lines changed: 961 additions & 20 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
14.5 KB
Loading
10.7 KB
Loading
13 KB
Loading

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

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,43 @@ test('Messagelist options showDayHeaders, showUserName and showMessageTimestamp
268268
});
269269
});
270270

271+
test('Message list with editing context menu', async (t) => {
272+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
273+
const chat = new Chat('#container');
274+
275+
await t
276+
.rightClick(chat.getMessage(2))
277+
.pressKey('down')
278+
.pressKey('down');
279+
280+
await testScreenshot(t, takeScreenshot, 'Messagelist with editing context menu.png', { element: '#container' });
281+
282+
await t
283+
.expect(compareResults.isValid())
284+
.ok(compareResults.errorMessages());
285+
}).before(async () => {
286+
const userFirst = createUser(1, 'First');
287+
const userSecond = createUser(2, 'Second');
288+
289+
const items = [
290+
{ author: userFirst, text: 'AAA' },
291+
{ author: userFirst, text: 'BBB' },
292+
{ author: userSecond, text: 'CCC' },
293+
];
294+
295+
return createWidget('dxChat', {
296+
items,
297+
editing: {
298+
allowUpdating: true,
299+
allowDeleting: true,
300+
},
301+
user: userSecond,
302+
width: 400,
303+
height: 600,
304+
showDayHeaders: false,
305+
});
306+
});
307+
271308
fixture`ChatMessageList: dayHeaders`
272309
.page(url(__dirname, '../container.html'));
273310

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

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,14 @@
88
$day-header-font-size,
99
) {
1010
.dx-chat-messagelist {
11-
.dx-scrollable-content {
12-
padding-inline: $padding;
11+
> .dx-scrollable {
12+
> .dx-scrollable-wrapper {
13+
> .dx-scrollable-container {
14+
> .dx-scrollable-content {
15+
padding-inline: $padding;
16+
}
17+
}
18+
}
1319
}
1420
}
1521

@@ -63,3 +69,20 @@
6369
color: $messagelist-empty-prompt-color;
6470
}
6571
}
72+
73+
@mixin chat-messagelist-contextmenu(
74+
$delete-button-color,
75+
$delete-button-focused-color,
76+
$delete-button-focused-bg,
77+
) {
78+
.dx-messagelist-context-menu-content {
79+
.dx-menu-item:has(.dx-icon-trash) {
80+
color: $delete-button-color;
81+
82+
&.dx-state-focused {
83+
color: $delete-button-focused-color;
84+
background-color: $delete-button-focused-bg;
85+
}
86+
}
87+
}
88+
}

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,3 +166,7 @@ $chat-typingindicator-circle-bg-color: null !default;
166166
* $type color
167167
*/
168168
$chat-typingindicator-bubble-bg-color: $chat-bubble-background-color-secondary !default;
169+
170+
$chat-messagelist-contextmenu-delete-button-color: $base-danger !default;
171+
$chat-messagelist-contextmenu-delete-button-focused-color: $base-danger !default;
172+
$chat-messagelist-contextmenu-delete-button-focused-bg: $base-hover-bg !default;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,11 @@
6969
$chat-messagelist-day-header-first-padding-top,
7070
$chat-messagelist-day-header-font-size,
7171
);
72+
@include chat-messagelist-contextmenu(
73+
$chat-messagelist-contextmenu-delete-button-color,
74+
$chat-messagelist-contextmenu-delete-button-focused-color,
75+
$chat-messagelist-contextmenu-delete-button-focused-bg,
76+
);
7277
@include chat-typingindicator(
7378
$chat-typingindicator-template,
7479
$chat-typingindicator-padding,

packages/devextreme-scss/scss/widgets/generic/chat/_colors.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -284,3 +284,7 @@ $chat-typingindicator-circle-bg-color: null !default;
284284
* $type color
285285
*/
286286
$chat-typingindicator-bubble-bg-color: $chat-bubble-background-color-secondary !default;
287+
288+
$chat-messagelist-contextmenu-delete-button-color: $base-danger !default;
289+
$chat-messagelist-contextmenu-delete-button-focused-color: $base-inverted-text-color !default;
290+
$chat-messagelist-contextmenu-delete-button-focused-bg: $base-danger !default;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,11 @@
7171
$chat-messagelist-day-header-first-padding-top,
7272
$chat-messagelist-day-header-font-size,
7373
);
74+
@include chat-messagelist-contextmenu(
75+
$chat-messagelist-contextmenu-delete-button-color,
76+
$chat-messagelist-contextmenu-delete-button-focused-color,
77+
$chat-messagelist-contextmenu-delete-button-focused-bg,
78+
);
7479
@include chat-typingindicator(
7580
$chat-typingindicator-template,
7681
$chat-typingindicator-padding,

packages/devextreme-scss/scss/widgets/material/chat/_colors.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,7 @@ $chat-typingindicator-circle-bg-color: rgba($base-inverted-bg, 0.4) !default;
131131
@else if $mode == "dark" {
132132
$chat-bubble-background-color-primary: rgba(lighten($base-accent, 19.22), 0.08) !default;
133133
}
134+
135+
$chat-messagelist-contextmenu-delete-button-color: $base-danger !default;
136+
$chat-messagelist-contextmenu-delete-button-focused-color: $base-danger !default;
137+
$chat-messagelist-contextmenu-delete-button-focused-bg: $base-hover-bg !default;

0 commit comments

Comments
 (0)