mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 19:33:39 +08:00
53b96638c5
This new navbar component is used for every navbar in chat, full page or drawer, and any screen. This commit also uses this opportunity to correctly decouple drawer-routes from full page routes. This will avoid having this kind of properties in components: `@includeHeader={{false}}`. The header is now defined in the parent template using a navbar. Each route has now its own template wrapped in a div of the name of the route, eg: `<div class="c-routes-threads">..</div>`. The navbar API: ```gjs <Navbar as |navbar|> <navbar.BackButton /> <navbar.Title @title="Foo" /> <navbar.ChannelTitle @channel={{@channel}} /> <navbar.Actions as |action|> <action.CloseThreadButton /> </navbar.Actions> </navbar> ``` The full list of components is listed in `plugins/chat/assets/javascripts/discourse/components/navbar/index.gjs` and `plugins/chat/assets/javascripts/discourse/components/navbar/actions.gjs`. Visually the header is not changing much, only in drawer mode the background has been removed. This commit also introduces a `<List />` component to facilitate rendering lists in chat plugin.
26 lines
907 B
JavaScript
26 lines
907 B
JavaScript
import { render } from "@ember/test-helpers";
|
|
import hbs from "htmlbars-inline-precompile";
|
|
import { module, test } from "qunit";
|
|
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
|
import { query } from "discourse/tests/helpers/qunit-helpers";
|
|
import fabricators from "discourse/plugins/chat/discourse/lib/fabricators";
|
|
|
|
module("Discourse Chat | Component | chat-thread-header", function (hooks) {
|
|
setupRenderingTest(hooks);
|
|
|
|
test("it safely renders title", async function (assert) {
|
|
const title = "<style>body { background: red;}</style>";
|
|
this.thread = fabricators.thread({ title });
|
|
|
|
await render(hbs`
|
|
<Chat::Thread::Header @thread={{this.thread}} @channel={{this.thread.channel}} />
|
|
`);
|
|
|
|
assert.ok(
|
|
query(".c-navbar__title")
|
|
.innerHTML.trim()
|
|
.includes("<style>body { background: red;}</style>")
|
|
);
|
|
});
|
|
});
|