diff --git a/src/common/core/BaseElement/BaseElement.ts b/src/common/core/BaseElement/BaseElement.ts index 143cc54..1828518 100644 --- a/src/common/core/BaseElement/BaseElement.ts +++ b/src/common/core/BaseElement/BaseElement.ts @@ -1,5 +1,7 @@ import { html, render, TemplateResult } from "@github/jtml"; -import { AppMainElement } from "components/"; +import { AppMainElement, AppModalElement, AppRootElement } from "components/"; +import { AppService, RouterService } from "core/services"; +import { AuthStore } from "core/store"; import { closest } from "core/utils"; class BaseElement extends HTMLElement { @@ -12,7 +14,31 @@ class BaseElement extends HTMLElement { this.disconnectedCallback = this.disconnectedCallback.bind(this); } - bindEvents = (): void => { + public get routerService(): RouterService { + return this.appMain?.routerService; + } + + public get authStore(): AuthStore { + return this.appMain?.authStore; + } + + public get appService(): AppService { + return this.appMain?.appService; + } + + public get appModal(): AppModalElement { + return this.appMain?.appModal; + } + + public get mainRoot(): AppRootElement { + return this.appMain?.mainRoot; + } + + public get isAuth(): boolean { + return this.appMain?.isAuth(); + } + + public bindEvents = (): void => { const _elems = this.querySelectorAll("[data-action]"); _elems?.forEach((el) => { for (const action of (el.getAttribute("data-action") || "") diff --git a/src/components/app-link/AppLinkElement.ts b/src/components/app-link/AppLinkElement.ts index 94d5a21..5bde65b 100644 --- a/src/components/app-link/AppLinkElement.ts +++ b/src/components/app-link/AppLinkElement.ts @@ -11,13 +11,11 @@ class AppLinkElement extends BaseComponentElement { @attr goBack: string; @attr title: string; @target main: Element; - routerService: RouterService; constructor() { super(); } elementConnected = (): void => { - this.routerService = this.appMain?.routerService; if (!this.title && this.innerText) { const _slottedText = this.innerText; this.innerText = null; diff --git a/src/components/app-main/AppMainElement.ts b/src/components/app-main/AppMainElement.ts index 0e838ae..e1e3a68 100644 --- a/src/components/app-main/AppMainElement.ts +++ b/src/components/app-main/AppMainElement.ts @@ -1,22 +1,23 @@ import { controller, target } from "@github/catalyst"; import { AppService, HttpClient, RouterService } from "core/services"; import { AuthStore } from "core/store"; -import { BaseComponentElement } from "common/"; import { AppModalElement, AppRootElement } from "components/"; +import { closest } from "core/utils"; @controller -class AppMainElement extends BaseComponentElement { +class AppMainElement extends HTMLElement { public routerService: RouterService; public authStore: AuthStore; private httpClient: HttpClient; public appService: AppService; @target appModal: AppModalElement; @target mainRoot: AppRootElement; + @closest appMain: AppMainElement; constructor() { super(); } - elementConnected = () => { + connectedCallback() { if (this.appMain !== this) return; const mainRoot = this.createMainRoot(); this.httpClient = new HttpClient(); @@ -48,6 +49,11 @@ class AppMainElement extends BaseComponentElement { layout: "menu-layout", middleware: this.isAuth, children: [ + { + path: "/all", + component: "wallet-list", + layout: "menu-layout", + }, { path: "/:walletId", component: "history-page", @@ -86,7 +92,7 @@ class AppMainElement extends BaseComponentElement { }, ]); this.routerService.init(); - }; + } middleAuth = () => { if (!this.isAuth) { diff --git a/src/components/input-field/InputFieldElement.ts b/src/components/input-field/InputFieldElement.ts index 21c83a0..feff3dc 100644 --- a/src/components/input-field/InputFieldElement.ts +++ b/src/components/input-field/InputFieldElement.ts @@ -17,7 +17,6 @@ class InputFieldElement extends BaseComponentElement { @target inp: HTMLElement; error: string; randId: string; - routerService: RouterService; constructor() { super(); } diff --git a/src/components/menu-item/MenuItemElement.ts b/src/components/menu-item/MenuItemElement.ts index a1dde32..098cea1 100644 --- a/src/components/menu-item/MenuItemElement.ts +++ b/src/components/menu-item/MenuItemElement.ts @@ -1,7 +1,6 @@ import { attr, controller, target } from "@github/catalyst"; import { html, TemplateResult } from "@github/jtml"; import { AppMainElement } from "components/app-main/AppMainElement"; -import { RouterService } from "core/services"; import { BaseComponentElement } from "common/"; @controller @@ -9,13 +8,11 @@ class MenuItemElement extends BaseComponentElement { @attr path: string; @attr title: string; @target itemEl: HTMLElement; - routerService: RouterService; constructor() { super(); } public elementConnected = (): void => { - this.routerService = this.appMain?.routerService; if (!this.title && this.innerText) { const _slottedText = this.innerText; this.innerText = null; diff --git a/src/pages/login-page/LoginPageElement.ts b/src/pages/login-page/LoginPageElement.ts index 4f149da..7f85386 100644 --- a/src/pages/login-page/LoginPageElement.ts +++ b/src/pages/login-page/LoginPageElement.ts @@ -9,14 +9,12 @@ import { BasePageElement } from "common/"; class LoginPageElement extends BasePageElement { @targets inputs: Array; authService: AuthService; - routerService: RouterService; errorMessage: string; constructor() { super(); } elementConnected = (): void => { this.authService = new AuthService(this.appMain.appService); - this.routerService = this.appMain.routerService; this.update(); };