diff --git a/package.json b/package.json index b0537a40e0..43bdd422f7 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ }, "scripts": { "dev": "concurrently -k \"yarn dev-run -C\" \"yarn dev:main\" \"yarn dev:renderer\"", - "dev-run": "env DEBUG=true nodemon --watch out/main.* --exec \"electron --inspect .\" $@", + "dev-run": "nodemon --watch out/main.* --exec \"electron --inspect .\" $@", "dev:main": "env DEBUG=true yarn compile:main --watch $@", "dev:renderer": "env DEBUG=true yarn compile:renderer --watch $@", "compile": "concurrently \"yarn i18n:compile\" \"yarn compile:main -p\" \"yarn compile:renderer -p\"", diff --git a/src/common/base-store.ts b/src/common/base-store.ts index 71d8991e23..4b694200b5 100644 --- a/src/common/base-store.ts +++ b/src/common/base-store.ts @@ -18,7 +18,6 @@ export interface BaseStoreParams { export class BaseStore extends Singleton { protected storeConfig: Config; protected syncDisposers: Function[] = []; - public whenLoaded = when(() => this.isLoaded); @observable isLoaded = false; @observable protected data: T; @@ -26,7 +25,7 @@ export class BaseStore extends Singleton { protected constructor(protected params: BaseStoreParams) { super(); this.params = { - autoLoad: !app, // disabled in main process due delayed configuration + autoLoad: false, syncEnabled: true, ...params, } @@ -50,7 +49,7 @@ export class BaseStore extends Singleton { await this.load(); } if (this.params.syncEnabled) { - await this.whenLoaded; + await when(() => this.isLoaded); this.enableSync(); } } diff --git a/src/main/index.ts b/src/main/index.ts index a71f08fa00..5b35ad135c 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -3,7 +3,7 @@ import "../common/system-ca" import "../common/prometheus-providers" import { app, dialog } from "electron" -import { appName, appProto, isDevelopment, isMac, staticDir, staticProto } from "../common/vars"; +import { appName, appProto, isMac, staticDir, staticProto } from "../common/vars"; import path from "path" import { format as formatUrl } from "url" import initMenu from "./menu" diff --git a/src/renderer/_vue/index.js b/src/renderer/_vue/index.js index 0b722ca637..f301695407 100644 --- a/src/renderer/_vue/index.js +++ b/src/renderer/_vue/index.js @@ -1,3 +1,5 @@ +// todo: remove, currently not used in runtime + import "../../common/system-ca" import "./assets/css/app.scss" import { PromiseIpc } from 'electron-promise-ipc' @@ -6,9 +8,6 @@ import BootstrapVue from 'bootstrap-vue' import App from './App' import router from './router' import store from './store' -import { userStore } from "../../common/user-store" -import { workspaceStore } from "../../common/workspace-store" -import { clusterStore } from "../../common/cluster-store" const promiseIpc = new PromiseIpc({maxTimeoutMs: 6000}); @@ -26,12 +25,6 @@ Vue.mixin({ }) setTimeout(async () => { - await Promise.all([ - userStore.whenLoaded, - workspaceStore.whenLoaded, - clusterStore.whenLoaded, - ]); - await store.dispatch('init') new Vue({ components: {App}, diff --git a/src/renderer/components/+clusters/add-cluster.tsx b/src/renderer/components/+clusters/add-cluster.tsx new file mode 100644 index 0000000000..6f5307013f --- /dev/null +++ b/src/renderer/components/+clusters/add-cluster.tsx @@ -0,0 +1,10 @@ +import React from "react"; + +interface Props { +} + +export class AddCluster extends React.Component { + render() { + return ""; + } +} diff --git a/src/renderer/components/+clusters/cluster-settings.tsx b/src/renderer/components/+clusters/cluster-settings.tsx new file mode 100644 index 0000000000..2596dd6752 --- /dev/null +++ b/src/renderer/components/+clusters/cluster-settings.tsx @@ -0,0 +1,10 @@ +import React from "react"; + +interface Props { +} + +export class ClusterSettings extends React.Component { + render() { + return ""; + } +} diff --git a/src/renderer/components/+clusters/clusters-menu.tsx b/src/renderer/components/+clusters/clusters-menu.tsx new file mode 100644 index 0000000000..2596dd6752 --- /dev/null +++ b/src/renderer/components/+clusters/clusters-menu.tsx @@ -0,0 +1,10 @@ +import React from "react"; + +interface Props { +} + +export class ClusterSettings extends React.Component { + render() { + return ""; + } +} diff --git a/src/renderer/components/+clusters/clusters.tsx b/src/renderer/components/+clusters/clusters.tsx new file mode 100644 index 0000000000..6ae275fe09 --- /dev/null +++ b/src/renderer/components/+clusters/clusters.tsx @@ -0,0 +1,26 @@ +import React from "react"; +import { userStore } from "../../../common/user-store"; +import { workspaceStore } from "../../../common/workspace-store"; +import { clusterStore } from "../../../common/cluster-store"; + +interface Props { +} + +export class Clusters extends React.Component { + static async init(){ + // todo: move to App.init() + await Promise.all([ + userStore.load(), + workspaceStore.load(), + clusterStore.load(), + ]); + } + + render() { + return ( +
+ Clusters page +
+ ); + } +} diff --git a/src/renderer/components/+clusters/index.tsx b/src/renderer/components/+clusters/index.tsx new file mode 100644 index 0000000000..32f11169b2 --- /dev/null +++ b/src/renderer/components/+clusters/index.tsx @@ -0,0 +1 @@ +export * from "./clusters" diff --git a/src/renderer/components/+landing-page/index.tsx b/src/renderer/components/+landing-page/index.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/components/+preferences/index.tsx b/src/renderer/components/+preferences/index.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/components/+whats-new/index.tsx b/src/renderer/components/+whats-new/index.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/components/+workspaces/add-workspace.tsx b/src/renderer/components/+workspaces/add-workspace.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/components/+workspaces/edit-workspace.tsx b/src/renderer/components/+workspaces/edit-workspace.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/components/+workspaces/index.tsx b/src/renderer/components/+workspaces/index.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/components/+workspaces/workspaces.tsx b/src/renderer/components/+workspaces/workspaces.tsx new file mode 100644 index 0000000000..e69de29bb2 diff --git a/src/renderer/index.tsx b/src/renderer/index.tsx index 1f3f7ad0ce..b7a6f9c093 100644 --- a/src/renderer/index.tsx +++ b/src/renderer/index.tsx @@ -1,19 +1,11 @@ +import React from "react"; +import ReactDOM from "react-dom"; import "../common/system-ca" -import { userStore } from "../common/user-store"; -import { workspaceStore } from "../common/workspace-store"; -import { clusterStore } from "../common/cluster-store"; -// import { App } from "./components/app"; +import { Clusters } from "./components/+clusters"; async function render() { - await Promise.all([ - userStore.whenLoaded, - workspaceStore.whenLoaded, - clusterStore.whenLoaded, - ]); - - // App.init(); - document.getElementById("app").innerHTML = "

Hello from renderer!

" + await Clusters.init(); + ReactDOM.render(, document.getElementById("app"),) } -// run -render(); +window.addEventListener("load", render);