Catch global errors and rejected promises and display them in an alert box. (#351)
* Catch errors and rejected promises. * Clean uppull/398/head
parent
10506f9cf5
commit
0185dd639e
16
src/main.ts
16
src/main.ts
|
@ -9,6 +9,22 @@ import BBCodeText from 'phaser3-rex-plugins/plugins/bbcodetext';
|
||||||
import TransitionImagePackPlugin from 'phaser3-rex-plugins/templates/transitionimagepack/transitionimagepack-plugin.js';
|
import TransitionImagePackPlugin from 'phaser3-rex-plugins/templates/transitionimagepack/transitionimagepack-plugin.js';
|
||||||
import { LoadingScene } from './loading-scene';
|
import { LoadingScene } from './loading-scene';
|
||||||
|
|
||||||
|
|
||||||
|
// Catch global errors and display them in an alert so users can report the issue.
|
||||||
|
window.onerror = function (message, source, lineno, colno, error) {
|
||||||
|
console.error(error);
|
||||||
|
let errorString = `Received unhandled error. Open browser console and click OK to see details.\nError: ${message}\nSource: ${source}\nLine: ${lineno}\nColumn: ${colno}\nStack: ${error.stack}`;
|
||||||
|
alert(errorString);
|
||||||
|
// Avoids logging the error a second time.
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Catch global promise rejections and display them in an alert so users can report the issue.
|
||||||
|
window.addEventListener('unhandledrejection', (event) => {
|
||||||
|
let errorString = `Received unhandled promise rejection. Open browser console and click OK to see details.\nReason: ${event.reason}`;
|
||||||
|
alert(errorString);
|
||||||
|
});
|
||||||
|
|
||||||
const config: Phaser.Types.Core.GameConfig = {
|
const config: Phaser.Types.Core.GameConfig = {
|
||||||
type: Phaser.WEBGL,
|
type: Phaser.WEBGL,
|
||||||
parent: 'app',
|
parent: 'app',
|
||||||
|
|
|
@ -331,6 +331,8 @@ export class TitlePhase extends Phase {
|
||||||
this.scene.sessionPlayTime = 0;
|
this.scene.sessionPlayTime = 0;
|
||||||
this.end();
|
this.end();
|
||||||
});
|
});
|
||||||
|
}).catch(err => {
|
||||||
|
console.error("Failed to load daily run:\n", err);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,7 +167,7 @@ export class DailyRunScoreboard extends Phaser.GameObjects.Container {
|
||||||
} else
|
} else
|
||||||
this.loadingLabel.setText(i18next.t('menu:noRankings'));
|
this.loadingLabel.setText(i18next.t('menu:noRankings'));
|
||||||
});
|
});
|
||||||
});
|
}).catch(err => { console.error("Failed to load daily rankings:\n", err) });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,9 @@ export default class TitleUiHandler extends OptionSelectUiHandler {
|
||||||
this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
|
this.playerCountLabel.setText(`${stats.playerCount} ${i18next.t("menu:playersOnline")}`);
|
||||||
if (this.splashMessage === battleCountSplashMessage)
|
if (this.splashMessage === battleCountSplashMessage)
|
||||||
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
|
this.splashMessageText.setText(battleCountSplashMessage.replace('{COUNT}', stats.battleCount.toLocaleString('en-US')));
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error("Failed to fetch title stats:\n", err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue