mirror of
https://github.com/discourse/discourse.git
synced 2025-04-10 15:20:49 +08:00
FEATURE: show status in search results when mentioning user in composers (#17811)
This commit is contained in:
parent
55fa94f759
commit
e87ca397be
@ -1,11 +1,9 @@
|
|||||||
import { emojiUnescape } from "discourse/lib/text";
|
import { emojiUnescape } from "discourse/lib/text";
|
||||||
import { escapeExpression } from "discourse/lib/utilities";
|
import { escapeExpression } from "discourse/lib/utilities";
|
||||||
import { htmlSafe } from "@ember/template";
|
import { htmlSafe } from "@ember/template";
|
||||||
import { helper } from "@ember/component/helper";
|
import { registerUnbound } from "discourse-common/lib/helpers";
|
||||||
|
|
||||||
function emoji(code, options) {
|
registerUnbound("emoji", function (code, options) {
|
||||||
const escaped = escapeExpression(`:${code}:`);
|
const escaped = escapeExpression(`:${code}:`);
|
||||||
return htmlSafe(emojiUnescape(escaped, options));
|
return htmlSafe(emojiUnescape(escaped, options));
|
||||||
}
|
});
|
||||||
|
|
||||||
export default helper(emoji);
|
|
||||||
|
@ -5,8 +5,9 @@
|
|||||||
<a href title="{{user.name}}">
|
<a href title="{{user.name}}">
|
||||||
{{avatar user imageSize="tiny"}}
|
{{avatar user imageSize="tiny"}}
|
||||||
<span class='username'>{{format-username user.username}}</span>
|
<span class='username'>{{format-username user.username}}</span>
|
||||||
<span class='name'>{{user.name}}</span>
|
{{#if user.status}}
|
||||||
{{decorate-username-selector user.username}}
|
{{emoji user.status.emoji title=user.status.description}}
|
||||||
|
{{/if}}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
import { test } from "qunit";
|
import { test } from "qunit";
|
||||||
import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
|
import { click, fillIn, triggerKeyEvent, visit } from "@ember/test-helpers";
|
||||||
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
import {
|
||||||
|
acceptance,
|
||||||
|
exists,
|
||||||
|
query,
|
||||||
|
} from "discourse/tests/helpers/qunit-helpers";
|
||||||
import { setCaretPosition } from "discourse/lib/utilities";
|
import { setCaretPosition } from "discourse/lib/utilities";
|
||||||
|
|
||||||
acceptance("Composer - editor mentions", function (needs) {
|
acceptance("Composer - editor mentions", function (needs) {
|
||||||
@ -16,6 +20,10 @@ acceptance("Composer - editor mentions", function (needs) {
|
|||||||
name: "Some User",
|
name: "Some User",
|
||||||
avatar_template:
|
avatar_template:
|
||||||
"https://avatars.discourse.org/v3/letter/t/41988e/{size}.png",
|
"https://avatars.discourse.org/v3/letter/t/41988e/{size}.png",
|
||||||
|
status: {
|
||||||
|
emoji: "tooth",
|
||||||
|
description: "off to dentist",
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
username: "user2",
|
username: "user2",
|
||||||
@ -104,4 +112,20 @@ acceptance("Composer - editor mentions", function (needs) {
|
|||||||
"should replace mention correctly"
|
"should replace mention correctly"
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("shows status on search results when mentioning a user", async function (assert) {
|
||||||
|
await visit("/");
|
||||||
|
await click("#create-topic");
|
||||||
|
|
||||||
|
// emulate typing in "abc @u"
|
||||||
|
const editor = query(".d-editor-input");
|
||||||
|
await fillIn(".d-editor-input", "@");
|
||||||
|
await setCaretPosition(editor, 5);
|
||||||
|
await triggerKeyEvent(".d-editor-input", "keyup", "@");
|
||||||
|
await fillIn(".d-editor-input", "@u");
|
||||||
|
await setCaretPosition(editor, 6);
|
||||||
|
await triggerKeyEvent(".d-editor-input", "keyup", "U");
|
||||||
|
|
||||||
|
assert.ok(exists(".autocomplete .emoji[title='off to dentist']"));
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user