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);
}