diff --git a/app/assets/javascripts/discourse/app/templates/composer.hbs b/app/assets/javascripts/discourse/app/templates/composer.hbs
index e1c50bc71b6..484aac0eeed 100644
--- a/app/assets/javascripts/discourse/app/templates/composer.hbs
+++ b/app/assets/javascripts/discourse/app/templates/composer.hbs
@@ -44,6 +44,9 @@
{{/if}}
{{/unless}}
+
+ {{plugin-outlet name="before-composer-controls" args=(hash model=model) tagName="" connectorTagName=""}}
+
{{composer-toggles
composeState=model.composeState
showToolbar=showToolbar
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js b/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js
index 4430cf35ae9..68c85e74581 100644
--- a/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js
+++ b/plugins/discourse-presence/assets/javascripts/discourse/components/composer-presence-display.js
@@ -7,6 +7,7 @@ import Component from "@ember/component";
import { inject as service } from "@ember/service";
export default Component.extend({
+ tagName: "",
presence: service(),
composerPresenceManager: service(),
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs b/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs
index e55bd318937..08b98e7bf89 100644
--- a/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs
+++ b/plugins/discourse-presence/assets/javascripts/discourse/templates/components/composer-presence-display.hbs
@@ -12,10 +12,14 @@
{{~else~}}
{{i18n "presence.editing" count=presenceUsers.length}}
{{~/if}}
- {{!-- (using comment to stop whitespace)
---}}{{!--
---}}
- ...
+ {{~""~}}
+
+ {{~""~}}
+
+ {{~""~}}
+ ...
+ {{~""~}}
+
{{/if}}
diff --git a/plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/composer-fields/presence.hbs b/plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/before-composer-controls/presence.hbs
similarity index 100%
rename from plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/composer-fields/presence.hbs
rename to plugins/discourse-presence/assets/javascripts/discourse/templates/connectors/before-composer-controls/presence.hbs
diff --git a/plugins/discourse-presence/assets/stylesheets/presence.scss b/plugins/discourse-presence/assets/stylesheets/presence.scss
index fd4b1993b20..261b40a856d 100644
--- a/plugins/discourse-presence/assets/stylesheets/presence.scss
+++ b/plugins/discourse-presence/assets/stylesheets/presence.scss
@@ -52,32 +52,15 @@
}
.composer-fields .presence-users {
- position: absolute;
- top: 20px;
- right: 95px;
- @media screen and (max-width: $small-width) {
- max-width: 318px;
- .presence-avatars {
- flex-wrap: nowrap;
- }
+ overflow: hidden;
+ flex-shrink: 1;
+ .presence-avatars {
+ flex-wrap: nowrap;
}
}
-.mobile-view {
- .presence-users {
- font-size: $font-down-1;
- }
- .composer-fields .presence-users {
- top: 7px;
- right: 65px;
- max-width: 70px;
- .presence-avatars {
- flex-wrap: nowrap;
- }
- .description {
- display: none;
- }
- }
+.mobile-view .composer-fields .presence-users .description {
+ display: none;
}
// TMP: RTL overrides
diff --git a/plugins/discourse-presence/test/javascripts/acceptance/discourse-presence-test.js b/plugins/discourse-presence/test/javascripts/acceptance/discourse-presence-test.js
index 3500f13a214..f2f268ed824 100644
--- a/plugins/discourse-presence/test/javascripts/acceptance/discourse-presence-test.js
+++ b/plugins/discourse-presence/test/javascripts/acceptance/discourse-presence-test.js
@@ -193,12 +193,7 @@ acceptance("Discourse Presence Plugin", function (needs) {
await click("#topic-footer-buttons .btn.create");
assert.ok(exists(".d-editor-input"), "the composer input is visible");
- const avatarSelector =
- ".composer-fields-outlet.presence .presence-avatars .avatar";
- assert.ok(
- exists(".composer-fields-outlet.presence"),
- "includes the presence component"
- );
+ const avatarSelector = ".composer-fields .presence-avatars .avatar";
assert.strictEqual(count(avatarSelector), 0, "no avatars displayed");
await joinChannel("/discourse-presence/reply/280", {