mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
UX: Improve composer presence-display positioning (#15235)
Previously the discourse-presence plugin was using a `position: absolute` hack to display the 'replying...' users in the top right of the composer. This commit adds a more suitable plugin outlet, and updates the discourse-presence styling so it slots into the flex-box layout at the top of the composer
This commit is contained in:
parent
d8fe0f4199
commit
a6230b8138
@ -44,6 +44,9 @@
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
|
|
||||||
|
{{plugin-outlet name="before-composer-controls" args=(hash model=model) tagName="" connectorTagName=""}}
|
||||||
|
|
||||||
{{composer-toggles
|
{{composer-toggles
|
||||||
composeState=model.composeState
|
composeState=model.composeState
|
||||||
showToolbar=showToolbar
|
showToolbar=showToolbar
|
||||||
|
@ -7,6 +7,7 @@ import Component from "@ember/component";
|
|||||||
import { inject as service } from "@ember/service";
|
import { inject as service } from "@ember/service";
|
||||||
|
|
||||||
export default Component.extend({
|
export default Component.extend({
|
||||||
|
tagName: "",
|
||||||
presence: service(),
|
presence: service(),
|
||||||
composerPresenceManager: service(),
|
composerPresenceManager: service(),
|
||||||
|
|
||||||
|
@ -12,10 +12,14 @@
|
|||||||
{{~else~}}
|
{{~else~}}
|
||||||
{{i18n "presence.editing" count=presenceUsers.length}}
|
{{i18n "presence.editing" count=presenceUsers.length}}
|
||||||
{{~/if}}
|
{{~/if}}
|
||||||
</span>{{!-- (using comment to stop whitespace)
|
{{~""~}}
|
||||||
--}}</span>{{!--
|
</span>
|
||||||
--}}<span class="wave">
|
{{~""~}}
|
||||||
<span class="dot">.</span><span class="dot">.</span><span class="dot">.</span>
|
<span class="wave">
|
||||||
|
{{~""~}}
|
||||||
|
<span class="dot">.</span><span class="dot">.</span><span class="dot">.</span>
|
||||||
|
{{~""~}}
|
||||||
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
@ -52,32 +52,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.composer-fields .presence-users {
|
.composer-fields .presence-users {
|
||||||
position: absolute;
|
overflow: hidden;
|
||||||
top: 20px;
|
flex-shrink: 1;
|
||||||
right: 95px;
|
.presence-avatars {
|
||||||
@media screen and (max-width: $small-width) {
|
flex-wrap: nowrap;
|
||||||
max-width: 318px;
|
|
||||||
.presence-avatars {
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.mobile-view {
|
.mobile-view .composer-fields .presence-users .description {
|
||||||
.presence-users {
|
display: none;
|
||||||
font-size: $font-down-1;
|
|
||||||
}
|
|
||||||
.composer-fields .presence-users {
|
|
||||||
top: 7px;
|
|
||||||
right: 65px;
|
|
||||||
max-width: 70px;
|
|
||||||
.presence-avatars {
|
|
||||||
flex-wrap: nowrap;
|
|
||||||
}
|
|
||||||
.description {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TMP: RTL overrides
|
// TMP: RTL overrides
|
||||||
|
@ -193,12 +193,7 @@ acceptance("Discourse Presence Plugin", function (needs) {
|
|||||||
await click("#topic-footer-buttons .btn.create");
|
await click("#topic-footer-buttons .btn.create");
|
||||||
assert.ok(exists(".d-editor-input"), "the composer input is visible");
|
assert.ok(exists(".d-editor-input"), "the composer input is visible");
|
||||||
|
|
||||||
const avatarSelector =
|
const avatarSelector = ".composer-fields .presence-avatars .avatar";
|
||||||
".composer-fields-outlet.presence .presence-avatars .avatar";
|
|
||||||
assert.ok(
|
|
||||||
exists(".composer-fields-outlet.presence"),
|
|
||||||
"includes the presence component"
|
|
||||||
);
|
|
||||||
assert.strictEqual(count(avatarSelector), 0, "no avatars displayed");
|
assert.strictEqual(count(avatarSelector), 0, "no avatars displayed");
|
||||||
|
|
||||||
await joinChannel("/discourse-presence/reply/280", {
|
await joinChannel("/discourse-presence/reply/280", {
|
||||||
|
Loading…
Reference in New Issue
Block a user