fix initial load bug in browser

This commit is contained in:
peter
2019-08-06 14:05:31 +02:00
parent dc7494b92d
commit 0371810b65
4 changed files with 10 additions and 7 deletions
+1 -1
View File
@@ -5,7 +5,7 @@
"tsc": "tsc", "tsc": "tsc",
"start": "npm run build; node lib/FrontblockAdmin.js", "start": "npm run build; node lib/FrontblockAdmin.js",
"build": "npm run clean; npm run build-backend; npm run build-frontend", "build": "npm run clean; npm run build-backend; npm run build-frontend",
"build-backend": "tsc; webpack --display-error-details --config src/backend/webpack.prod.js --progress --colors; pwd; cp -r lib/PluginManager/* .", "build-backend": "tsc; webpack --display-error-details --config src/backend/webpack.prod.js --progress --colors; cp -r lib/PluginManager/* .",
"build-frontend": "npm run build-dashboard; npm run build-widget", "build-frontend": "npm run build-dashboard; npm run build-widget",
"build-dashboard": "cd src/frontend/dashboard; npm i; npm run build; cp -r dist/* ../../../static", "build-dashboard": "cd src/frontend/dashboard; npm i; npm run build; cp -r dist/* ../../../static",
"build-widget": "rollup -c src/frontend/widget/rollup.config.js; mkdir -p plugins/PluginManager; cp FrontendPlugin.js plugins/PluginManager", "build-widget": "rollup -c src/frontend/widget/rollup.config.js; mkdir -p plugins/PluginManager; cp FrontendPlugin.js plugins/PluginManager",
+5 -3
View File
@@ -1,4 +1,5 @@
import { parseSubResponse, parseResponse } from "frontblock-generic/Types"; import { parseSubResponse, parseResponse } from "frontblock-generic/Types";
import PluginManager from "./PluginManager/PluginManager";
var bsock = require('bsock') var bsock = require('bsock')
/** /**
@@ -73,15 +74,16 @@ export class FrontblockConfigLib{
} }
window['fb'] = new FrontblockConfigLib() window['fb'] = new FrontblockConfigLib()
declare const fb declare const fb:{PluginManager:PluginManager}
window['setup'] = async() => { window['setup'] = async() => {
await Promise.all([ await Promise.all([
fb.PluginManager.installPlugin("ApiClient"), fb.PluginManager.installPlugin("ApiClient"),
fb.PluginManager.installPlugin("HtmlSupplier"), fb.PluginManager.installPlugin("HtmlSupplier"),
fb.PluginManager.installPlugin("PluginManager"), fb.PluginManager.installPlugin("PluginManager"),
fb.PluginManager.installPlugin("PaymentManager") fb.PluginManager.installPlugin("PaymentManager"),
fb.PluginManager.installPlugin("Wallet"),
]) ])
location.reload(); location.reload();
console.log("done")
} }
@@ -6,7 +6,10 @@ declare const fb
export class DashboardService { export class DashboardService {
constructor() { } constructor() { }
getWidgetConfigs(): Promise<string[]> { async getWidgetConfigs(): Promise<string[]> {
while(!fb.PluginManager){
await new Promise((resolve) => setTimeout(resolve, 50))
}
return fb.PluginManager.getLoadedPluginNames() return fb.PluginManager.getLoadedPluginNames()
} }
@@ -41,9 +41,7 @@ export class DashboardComponent implements AfterViewInit {
private injector: Injector) { } private injector: Injector) { }
ngAfterViewInit() { ngAfterViewInit() {
setTimeout( () => {
this.loadWidgets(); this.loadWidgets();
}, 250)
} }
private async loadWidgets() { private async loadWidgets() {