DEV: Introduce <DPageHeader /> and <DPageSubheader /> components (#30146)

This converts the `<AdminPageHeader />` component and the
`<AdminPageSubheader />` components into new components
that can be used outside of admin, and updates the CSS classes.
Also introduces a `<DPageActionButton />` component and child
components for the header action buttons.

I have to keep the old admin-only components around for
now until plugins are updated, then we can remove it,
and remove the re-exports that are done within
admin-page-action-button.gjs
This commit is contained in:
Martin Brennan
2024-12-18 08:13:39 +10:00
committed by GitHub
parent ef754cdd9a
commit a879bcdc35
41 changed files with 789 additions and 489 deletions

View File

@ -4,9 +4,9 @@
/>
<div class="discourse-chat-incoming-webhooks admin-detail">
<AdminPageSubheader
@titleLabel="chat.incoming_webhooks.title"
@descriptionLabel="chat.incoming_webhooks.instructions"
<DPageSubheader
@titleLabel={{i18n "chat.incoming_webhooks.title"}}
@descriptionLabel={{i18n "chat.incoming_webhooks.instructions"}}
>
<:actions as |actions|>
<actions.Primary
@ -18,7 +18,7 @@
class="admin-incoming-webhooks-new"
/>
</:actions>
</AdminPageSubheader>
</DPageSubheader>
<div class="incoming-chat-webhooks">
{{#if this.model.incoming_chat_webhooks}}

View File

@ -6,7 +6,7 @@ describe "Admin Chat Incoming Webhooks", type: :system do
let(:dialog) { PageObjects::Components::Dialog.new }
let(:admin_incoming_webhooks_page) { PageObjects::Pages::AdminIncomingWebhooks.new }
let(:admin_header) { PageObjects::Components::AdminHeader.new }
let(:d_page_header) { PageObjects::Components::DPageHeader.new }
before do
chat_system_bootstrap(current_user)
@ -16,11 +16,11 @@ describe "Admin Chat Incoming Webhooks", type: :system do
it "can create incoming webhooks" do
admin_incoming_webhooks_page.visit
expect(admin_header).to be_visible
expect(d_page_header).to be_visible
admin_incoming_webhooks_page.click_new
expect(admin_header).to be_hidden
expect(d_page_header).to be_hidden
admin_incoming_webhooks_page.form.field("name").fill_in("Test webhook")
admin_incoming_webhooks_page.form.field("description").fill_in("Some test content")