Fix overlapping text in gr-message
Previously, the amount of space the date took up on the screen was
estimated, but different types of formatting (time with AM/PM vs Date)
took up different amounts of space. Estimating was not working. Instead,
update the collapsed message to use flexbox. The message content
shrinks/expands when the width of the page changes, and will fit
regardless of the width of the date in a particular message. This change
also displays text content in a regular div while collpased rather than
gr-formatted-text so that it can be constrained to a single line.
Bug: Issue 4608
Change-Id: Id34b93c33b376d522f1d396a69133f854ad4dbf6
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message.html b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
index 2fccfe43..1afd548 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message.html
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message.html
@@ -39,9 +39,10 @@
left: var(--default-horizontal-margin);
}
.collapsed .contentContainer {
+ align-items: baseline;
color: #777;
- height: 4.5em;
- overflow: hidden;
+ display: flex;
+ white-space: nowrap;
}
.showAvatar.expanded .contentContainer {
margin-left: calc(var(--default-horizontal-margin) + 2.5em);
@@ -50,10 +51,6 @@
.showAvatar.collapsed .contentContainer {
margin-left: calc(var(--default-horizontal-margin) + 1.75em);
}
- .showAvatar.collapsed .contentContainer,
- .hideAvatar.collapsed .contentContainer {
- margin-right: calc(var(--default-horizontal-margin) + 2.25em);
- }
.hideAvatar.collapsed .contentContainer,
.hideAvatar.expanded .contentContainer {
margin-left: 0;
@@ -86,11 +83,26 @@
display: inline;
}
.collapsed gr-comment-list,
- .collapsed .replyContainer {
+ .collapsed .replyContainer,
+ .collapsed .hideOnCollapsed,
+ .hideOnOpen {
display: none;
}
+ .collapsed .hideOnOpen {
+ display: block;
+ }
+ .collapsed .content {
+ flex: 1;
+ min-width: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ .collapsed .date {
+ position: static;
+ }
.collapsed .name {
color: var(--default-text-color);
+ margin-right: .4em;
}
.expanded .name {
cursor: pointer;
@@ -111,8 +123,9 @@
<div class="name" on-tap="_handleNameTap">[[author.name]]</div>
<template is="dom-if" if="[[message.message]]">
<div class="content">
+ <div class="message hideOnOpen">[[message.message]]</div>
<gr-formatted-text
- class="message"
+ class="message hideOnCollapsed"
content="[[message.message]]"
config="[[projectConfig.commentlinks]]"></gr-formatted-text>
<gr-comment-list
@@ -126,10 +139,12 @@
</a>
</template>
<template is="dom-if" if="[[message.reviewer]]">
- set reviewer status for
- <gr-account-chip account="[[message.reviewer]]">
- </gr-account-chip>
- to [[message.state]].
+ <div class="content">
+ set reviewer status for
+ <gr-account-chip account="[[message.reviewer]]">
+ </gr-account-chip>
+ to [[message.state]].
+ </div>
<gr-date-formatter class="date" date-str="[[message.updated]]">
</gr-date-formatter>
</template>