diff --git a/src/Umbraco.Web.UI.Client/package-lock.json b/src/Umbraco.Web.UI.Client/package-lock.json index f0da6bdbd3..8eba143100 100644 --- a/src/Umbraco.Web.UI.Client/package-lock.json +++ b/src/Umbraco.Web.UI.Client/package-lock.json @@ -11,7 +11,8 @@ "dependencies": { "@umbraco-ui/uui": "^0.2.1", "lit": "^2.2.4", - "openapi-typescript-fetch": "^1.1.3" + "openapi-typescript-fetch": "^1.1.3", + "rxjs": "^7.5.5" }, "devDependencies": { "@open-wc/testing": "^3.1.5", @@ -5181,7 +5182,6 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dev": true, "dependencies": { "tslib": "^2.1.0" } @@ -5189,8 +5189,7 @@ "node_modules/rxjs/node_modules/tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" }, "node_modules/safe-buffer": { "version": "5.2.1", @@ -9915,7 +9914,6 @@ "version": "7.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz", "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==", - "dev": true, "requires": { "tslib": "^2.1.0" }, @@ -9923,8 +9921,7 @@ "tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" } } }, diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 9a849bb0a3..34c9026b36 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -33,7 +33,8 @@ "dependencies": { "@umbraco-ui/uui": "^0.2.1", "lit": "^2.2.4", - "openapi-typescript-fetch": "^1.1.3" + "openapi-typescript-fetch": "^1.1.3", + "rxjs": "^7.5.5" }, "devDependencies": { "@open-wc/testing": "^3.1.5", diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice-main.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice-main.element.ts index e590d73e44..5afc4fc96c 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/backoffice-main.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/backoffice-main.element.ts @@ -80,9 +80,7 @@ export class UmbBackofficeMain extends LitElement { Actions - - - +
Save and preview Save diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/umb-backoffice-header.element.ts b/src/Umbraco.Web.UI.Client/src/backoffice/umb-backoffice-header.element.ts index 2cbc24371f..907d8e181e 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/umb-backoffice-header.element.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/umb-backoffice-header.element.ts @@ -119,7 +119,7 @@ export class UmbBackofficeHeader extends UmbContextInjectMixin(LitElement) { this._activeSection = section.alias; } - private _handleLabelClick(e: MouseEvent) { + private _handleLabelClick(e: PointerEvent) { const label = (e.target as any).label; this._activeSection = label; @@ -129,12 +129,9 @@ export class UmbBackofficeHeader extends UmbContextInjectMixin(LitElement) { this._open = false; } - async connectedCallback(): Promise { + connectedCallback() { super.connectedCallback(); - const { data } = await getUserSections({}); - this._allowedSection = data.sections; - this.requestContext('umbRouter'); this.requestContext('umbExtensionRegistry'); } @@ -150,8 +147,11 @@ export class UmbBackofficeHeader extends UmbContextInjectMixin(LitElement) { } } - private _useSections() { + private async _useSections() { this._subscription?.unsubscribe(); + + const { data } = await getUserSections({}); + this._allowedSection = data.sections; this._subscription = this._extensionRegistry?.extensions .pipe( diff --git a/src/Umbraco.Web.UI.Client/src/content/content-section.element.ts b/src/Umbraco.Web.UI.Client/src/content/content-section.element.ts index 6fc2ed6b30..b0ba6a734e 100644 --- a/src/Umbraco.Web.UI.Client/src/content/content-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/content/content-section.element.ts @@ -18,4 +18,4 @@ declare global { interface HTMLElementTagNameMap { 'umb-content-section': UmbContentSection; } -} \ No newline at end of file +} diff --git a/src/Umbraco.Web.UI.Client/src/core/router/index.ts b/src/Umbraco.Web.UI.Client/src/core/router/index.ts index 7fd89f656a..0238d4a9cf 100644 --- a/src/Umbraco.Web.UI.Client/src/core/router/index.ts +++ b/src/Umbraco.Web.UI.Client/src/core/router/index.ts @@ -1,3 +1,5 @@ +import { Observable, ReplaySubject } from "rxjs"; + export interface UmbRoute { path: string; elementName: string; @@ -17,6 +19,9 @@ export class UmbRouter { private _outlet: HTMLElement; private _element: any; + private _location: ReplaySubject = new ReplaySubject(1); + public readonly location: Observable = this._location.asObservable(); + constructor(host: HTMLElement, outlet: HTMLElement) { this._host = host; this._outlet = outlet; @@ -114,6 +119,8 @@ export class UmbRouter { if (!canEnter) return; window.history.pushState(null, '', pathname); + + this._location.next(location); this._render(); } diff --git a/src/Umbraco.Web.UI.Client/src/media/media-section.element.ts b/src/Umbraco.Web.UI.Client/src/media/media-section.element.ts index 42529c08f9..edb74eb32c 100644 --- a/src/Umbraco.Web.UI.Client/src/media/media-section.element.ts +++ b/src/Umbraco.Web.UI.Client/src/media/media-section.element.ts @@ -18,4 +18,4 @@ declare global { interface HTMLElementTagNameMap { 'umb-media-section': UmbMediaSection; } -} \ No newline at end of file +} diff --git a/src/Umbraco.Web.UI.Client/src/umb-app.ts b/src/Umbraco.Web.UI.Client/src/umb-app.ts index 3bfa7d046b..e7d1e940a4 100644 --- a/src/Umbraco.Web.UI.Client/src/umb-app.ts +++ b/src/Umbraco.Web.UI.Client/src/umb-app.ts @@ -1,9 +1,9 @@ +import '@umbraco-ui/uui'; +import '@umbraco-ui/uui-css/dist/uui-css.css'; import './auth/login/umb-login.element'; import './auth/umb-auth-layout.element'; import './backoffice/umb-backoffice.element'; import './installer/installer.element'; -import '@umbraco-ui/uui'; -import '@umbraco-ui/uui-css/dist/uui-css.css'; import { css, html, LitElement } from 'lit'; import { customElement, state } from 'lit/decorators.js'; @@ -77,6 +77,7 @@ export class UmbApp extends UmbContextProvideMixin(LitElement) { } else { this._router.push('/section/content'); } + } catch (error) { console.log(error); }