Skip to content

Commit 196ac2c

Browse files
Chat.Editing: contextmenu integration (DevExpress#29672)
Co-authored-by: ksercs <[email protected]>
1 parent e82ee2a commit 196ac2c

File tree

48 files changed

+961
-20
lines changed

Some content is hidden

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

48 files changed

+961
-20
lines changed
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)