discourse/plugins/chat/assets/stylesheets/common/chat-drawer.scss
Jarek Radosz 1defb9449b
UX: Move user-cards above composer (#27491)
There is currently only one scenario when both the composer and a user card would be present at the same time:

if you have the composer open and then you click on something outside it that triggers a card. Which implies intent to see the card (unobstructed by the composer 😉)

The reverse doesn't happen because opening the composer would close an existing user card.

In theory there's also displaying a user card by clicking on a mention in composer's preview but that functionality is currently broken (and this PR is a prerequisite 😉)

---

I changed `.user-card, .group-card` to `.fk-d-menu[data-identifier="card"]` because that regressed when we moved user cards to float-kit – they are nested inside `.fk-d-menu` so its `z-index` is now important (effectively the cards had `z-index: z("dropdown")` instead of `z("usercard")`)
2024-06-18 15:12:41 +02:00

115 lines
2.4 KiB
SCSS

body.composer-open .chat-drawer-outlet-container {
bottom: 11px; // prevent height of grippie from obscuring ...is typing indicator
}
.chat-drawer-resizer {
position: absolute;
top: -5px;
width: 15px;
height: 15px;
z-index: z("composer", "content");
}
html:not(.rtl) {
.chat-drawer-resizer {
cursor: nwse-resize;
left: -5px;
}
}
html.rtl {
.chat-drawer-resizer {
cursor: nesw-resize;
right: -5px;
}
}
.chat-drawer-outlet-container {
// higher than timeline, lower than composer, lower than user card (bump up below)
z-index: z("composer", "content") - 1;
position: fixed;
right: var(--composer-right, 20px);
left: 0;
max-height: calc(100% - var(--header-offset) - 15px);
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
pointer-events: none !important;
bottom: 0;
box-sizing: border-box;
padding-bottom: var(--composer-height, 0);
transition: all 100ms ease-in;
transition-property: bottom, padding-bottom;
.rtl & {
left: var(--composer-right, 20px);
right: 0;
}
}
.chat-drawer {
pointer-events: auto;
align-self: flex-end;
width: 400px;
min-width: 250px !important; // important to override inline styles
max-width: calc(100% - var(--composer-right));
min-height: 300px !important; // important to override inline styles
.chat-drawer-container {
background: var(--secondary);
border: 1px solid var(--primary-low);
border-bottom: 0;
border-top-left-radius: var(--d-border-radius-large);
border-top-right-radius: var(--d-border-radius-large);
box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.125);
box-sizing: border-box;
display: flex;
flex-direction: column;
position: relative;
overflow: hidden;
}
&.is-expanded {
.chat-drawer-container {
height: 100%;
}
}
&:not(.is-expanded) {
min-height: 0 !important;
height: auto !important;
}
.chat-channel,
.chat-thread,
.chat-thread-list {
height: 100%;
}
}
.chat-drawer-content {
@include chat-scrollbar();
display: flex;
flex-direction: column;
box-sizing: border-box;
height: 100%;
min-height: 1px;
position: relative;
overflow-y: auto;
overscroll-behavior: contain;
.c-channel-settings {
flex-grow: 1;
.chat-form {
height: 100%;
}
.chat-form__section.--leave-channel {
margin-top: auto;
margin-bottom: 0;
}
}
}