From ab444439e1910400975834fee42a3fb7d72384bb Mon Sep 17 00:00:00 2001 From: "Adolfo R. Brandes" Date: Thu, 14 May 2026 07:25:57 -0300 Subject: [PATCH] feat: ship sign in / register in anonymous header menu by default The header.anonymousMenu.v1 slot was only populated by the dev-only devUserApp, so any non-dev site config produced an empty AnonymousMenu wrapper. Register LoginButton and RegisterButton on headerApp directly and drop devUserApp. Restyle to match frontend-component-header's treatment: Sign In as a text link, Register as outline-primary. Co-Authored-By: Claude --- shell/dev/devUser/app.tsx | 24 ------------------- shell/dev/devUser/index.ts | 1 - shell/dev/index.ts | 1 - shell/header/anonymous-menu/LoginButton.tsx | 2 +- .../header/anonymous-menu/RegisterButton.tsx | 2 +- shell/header/app.tsx | 14 +++++++++++ shell/site.config.dev.tsx | 3 +-- 7 files changed, 17 insertions(+), 30 deletions(-) delete mode 100644 shell/dev/devUser/app.tsx delete mode 100644 shell/dev/devUser/index.ts diff --git a/shell/dev/devUser/app.tsx b/shell/dev/devUser/app.tsx deleted file mode 100644 index 550c1119..00000000 --- a/shell/dev/devUser/app.tsx +++ /dev/null @@ -1,24 +0,0 @@ -import { WidgetOperationTypes } from '../../../runtime'; -import { App } from '../../../types'; -import LoginButton from '../../header/anonymous-menu/LoginButton'; -import RegisterButton from '../../header/anonymous-menu/RegisterButton'; - -const app: App = { - appId: 'org.openedx.frontend.app.dev.user', - slots: [ - { - slotId: 'org.openedx.frontend.slot.header.anonymousMenu.v1', - id: 'user.anonymousMenu.loginButton', - op: WidgetOperationTypes.APPEND, - component: LoginButton, - }, - { - slotId: 'org.openedx.frontend.slot.header.anonymousMenu.v1', - id: 'user.anonymousMenu.registerButton', - op: WidgetOperationTypes.APPEND, - component: RegisterButton, - }, - ] -}; - -export default app; diff --git a/shell/dev/devUser/index.ts b/shell/dev/devUser/index.ts deleted file mode 100644 index 8cb9630a..00000000 --- a/shell/dev/devUser/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as devUserApp } from './app'; diff --git a/shell/dev/index.ts b/shell/dev/index.ts index 5d823526..6d4fd6c7 100644 --- a/shell/dev/index.ts +++ b/shell/dev/index.ts @@ -1,5 +1,4 @@ export { devFooterApp } from './devFooter'; export { devHeaderApp } from './devHeader'; export { devHomeApp } from './devHome'; -export { devUserApp } from './devUser'; export { slotShowcaseApp } from './slotShowcase'; diff --git a/shell/header/anonymous-menu/LoginButton.tsx b/shell/header/anonymous-menu/LoginButton.tsx index 61761b57..da319f11 100644 --- a/shell/header/anonymous-menu/LoginButton.tsx +++ b/shell/header/anonymous-menu/LoginButton.tsx @@ -7,7 +7,7 @@ export default function LoginButton({ ...props }) { const intl = useIntl(); return ( - ); diff --git a/shell/header/anonymous-menu/RegisterButton.tsx b/shell/header/anonymous-menu/RegisterButton.tsx index 4a073d6d..a836c9f7 100644 --- a/shell/header/anonymous-menu/RegisterButton.tsx +++ b/shell/header/anonymous-menu/RegisterButton.tsx @@ -8,7 +8,7 @@ export default function RegisterButton({ ...props }) { const intl = useIntl(); return ( - ); diff --git a/shell/header/app.tsx b/shell/header/app.tsx index 375fbded..a5a10732 100644 --- a/shell/header/app.tsx +++ b/shell/header/app.tsx @@ -4,6 +4,8 @@ import Logo from '../Logo'; import LinkMenuItem from '../menus/LinkMenuItem'; import ProfileLinkMenuItem from '../menus/ProfileLinkMenuItem'; import AnonymousMenu from './anonymous-menu/AnonymousMenu'; +import LoginButton from './anonymous-menu/LoginButton'; +import RegisterButton from './anonymous-menu/RegisterButton'; import AuthenticatedMenu from './AuthenticatedMenu'; import DesktopLayout from './desktop/DesktopLayout'; import PrimaryNavLinks from './desktop/PrimaryNavLinks'; @@ -108,6 +110,18 @@ const config: App = { authenticated: false, } }, + { + slotId: 'org.openedx.frontend.slot.header.anonymousMenu.v1', + id: 'org.openedx.frontend.widget.header.anonymousMenuLogin.v1', + op: WidgetOperationTypes.APPEND, + component: LoginButton, + }, + { + slotId: 'org.openedx.frontend.slot.header.anonymousMenu.v1', + id: 'org.openedx.frontend.widget.header.anonymousMenuRegister.v1', + op: WidgetOperationTypes.APPEND, + component: RegisterButton, + }, // Mobile { diff --git a/shell/site.config.dev.tsx b/shell/site.config.dev.tsx index f8f3be76..daf29e73 100644 --- a/shell/site.config.dev.tsx +++ b/shell/site.config.dev.tsx @@ -1,5 +1,5 @@ import { EnvironmentTypes, SiteConfig } from '../types'; -import { devFooterApp, devHeaderApp, devHomeApp, devUserApp, slotShowcaseApp } from './dev'; +import { devFooterApp, devHeaderApp, devHomeApp, slotShowcaseApp } from './dev'; import { footerApp, headerApp, shellApp } from '.'; import './style'; @@ -9,7 +9,6 @@ const siteConfig: SiteConfig = { shellApp, headerApp, footerApp, - devUserApp, devHomeApp, devHeaderApp, devFooterApp,